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

发布于 2024-09-13 15:41:34 字数 153 浏览 4 评论 0原文

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

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

有什么想法吗?用户在打字时会立即得到反馈,因此性能很重要。

I have an app which shows text in a UIPickerView based on a search. I want to highlight specific letters in the string that are there as a result of a wildcard character.

For example, if I searched for "CA?", one of the rows will show "CAT" and I want only the letter "T" to be in the color blue.

Any ideas? The user gets immediate feedback as he types so performance is important.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

や莫失莫忘 2024-09-20 15:41:34

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

To create a string that has different font properties for different characters, you would generally use NSAttributedString. However, UIPickerView doesn't seem to directly support using NSAttributedStrings as the labels for your picker components, nor does UILabel seem to support them. You might have to create a custom UIView subclass and return it from pickerView:viewForRow:forComponent:reusingView: in your UIPickerViewDelegate.

梅倚清风 2024-09-20 15:41:34

感谢大卫给我的建议让我开始。

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

Thanks to David for the tip to get me started.

I ended up using the Three20 library and returning a TTStyledTextLabel from pickerView:viewForRow:forComponent:reusingView: with the text property set to [TTStyledText textFromXHTML:myXHTML] along with a TTDefaultStyleSheet to define the colored spans. Works great and seems to be very fast in the UIPickerView component.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文