如何更改UIPickerView行中单个字符的字体颜色?

时间:2010-08-07 04:06:24

标签: iphone objective-c xcode interface-builder uipickerview

我有一个应用程序,它根据搜索显示UIPickerView中的文本。我想突出显示字符串中由于通配符而存在的特定字母。

例如,如果我搜索“CA?”,其中一行将显示“CAT”,我只希望字母“T”为蓝色。

有什么想法吗?用户在输入时会得到即时反馈,因此性能非常重要。

2 个答案:

答案 0 :(得分:1)

要创建具有不同字符的不同字体属性的字符串,通常使用NSAttributedString。但是,UIPickerView似乎并不直接支持使用NSAttributedString作为选择器组件的标签,UILabel似乎也不支持它们。您可能必须创建自定义UIView子类并从pickerView:viewForRow:forComponent:reusingView:中的UIPickerViewDelegate返回。

答案 1 :(得分:1)

感谢David提示让我开始。

我最终使用了Three20库并从pickerView返回了一个TTStyledTextLabel:viewForRow:forComponent:reusingView:将text属性设置为[TTStyledText textFromXHTML:myXHTML]以及TTDefaultStyleSheet来定义彩色跨度。工作得很好,在UIPickerView组件中看起来非常快。