我有一个应用程序,它根据搜索显示UIPickerView中的文本。我想突出显示字符串中由于通配符而存在的特定字母。
例如,如果我搜索“CA?”,其中一行将显示“CAT”,我只希望字母“T”为蓝色。
有什么想法吗?用户在输入时会得到即时反馈,因此性能非常重要。
答案 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组件中看起来非常快。