如何更改UIPicker中字符的大小

时间:2011-07-13 02:35:28

标签: iphone ios uipicker text-size

我试图集中并改变UIPicker中文本的大小,但我不确定如何......我认为这可能发生在其中一种方法中,很可能是第一种......

- (NSString*)pickerView:(UIPickerView*)pv titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [[NSString stringWithFormat:@"%x",row ] uppercaseString]; //Sets picker options as an Uppercase Hex value
}


#pragma mark UIPickerViewDataSource methods

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pv
{
    return 5; //5 columns in the picker
}

- (NSInteger)pickerView:(UIPickerView*)pv numberOfRowsInComponent:(NSInteger)component
{
    return 16;
}

任何人都知道如何做到这一点?我环顾四周,但文档相当薄......

2 个答案:

答案 0 :(得分:2)

约翰,

与表视图一样,您无法更改通常在titleForRow委托方法中设置的默认标题的字体属性,而是必须使用以下方法:

- (UIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component

在这里,您可以创建一个带有自定义UILabel的UIView,并设置Label的字体大小,颜色和其他属性。

此方法在Apple's UIPickerView Class Reference

中描述

希望这对你有帮助!

答案 1 :(得分:0)

现在使用iOS 6,您可以使用NSAttributedStrings来自定义标题文本(尽管我认为这不会让您轻松地将文本居中)。

新的UIPickerViewDelegate方法允许您返回属性字符串而不是普通的字母字符串:

(NSAttributedString *)pickerView:(UIPickerView *)pickerView attributesTitleForRow:(NSInteger)row forComponent:(NSInteger)component

NSAttributedString UIKit adds页面包含您可以控制的所有角色属性的列表: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/NSAttributedString_UIKit_Additions/Reference/Reference.html#//apple_ref/doc/uid/TP40011688