2012-03-06 95 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