2012-03-06 90 views

回答

0

使用UIPickerView的委托来改变字体大小UITextFieldUITextView,并重新设置的UITextField的字体。

2

我会建议创建一个NSArray来在你的选择器中包含字体大小。如果你尝试给它原语,NSArray会变得模糊不清,所以在向你的数组添加字体大小时使用[NSNumber numberWithInt:(int)]。一旦你有一个数组,填充选择器,然后设置选择器的didSelectRow:方法。

在我的示例中,假设“data”是我的数组数组,“pickerView”是UIPickerView的IBOutlet,“label”是UILabel的另一个出口。所有这些代码将是在一个单一的视图控制器:

- (void)viewDidLoad 
    { 
     // pickerView is going to get its data from this class 
     pickerView.delegate = self; 
     pickerView.dataSource = self; 

     [super viewDidLoad]; 
    } 

    #pragma mark UIPickerViewDelegate methods 
    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 
     //Log it out for debugging 
     NSLog(@"data for row #%d = %@",row,[data objectAtIndex:row]); 

     // return data for current row 
     return [data objectAtIndex:row]; 
    } 


    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
    { 
     label.font = [UIFont fontWithName:(NSString *)fontName size:[data objectAtIndex:row]]; 
    } 

我不知道,如果你打算上存储该值,更改标签,或者是什么......但是这应该包括你需要的概念利用。

编辑:格式和viewDidLoad添加到原来的文章。

+0

hi什么是代码中的“fontName” - (void)pickerView :(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { label.font = [UIFont fontWithName:(NSString *)fontName size:[data objectAtIndex:row]]; } – user1171478 2012-03-19 17:03:26

+0

fontName实际上是我从我自己的项目中复制的一个位代码。你可以看到这里的文档(http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIFont_Class/Reference/Reference.html#//apple_ref/occ/clm/UIFont/fontWithName:尺寸:)。 出于原始问题的目的,如果您对默认字体很好,则不需要使用此选项。如果是这种情况,请继续使用[fontWithSize:](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIFont_Class/Reference/Reference.html#//apple_ref/occ/ instm/UIFont/fontWithSize :)。 – Squatch 2012-03-20 12:33:35