【问题标题】:Core Text setting default color and color of specific wordsCore Text 设置默认颜色和特定单词的颜色
【发布时间】:2012-05-01 03:41:36
【问题描述】:

我对使用 Core Text 很陌生,而且我没有找到太多关于如何使用颜色属性的信息......如何设置默认文本颜色,然后更改特定范围的颜色?

我要做的是画一个简短的句子。我希望文本的默认颜色为浅灰色,然后将单个单词标记为红色以突出显示它。

【问题讨论】:

标签: ios colors core-text


【解决方案1】:

在试图更好地解释我遇到的问题时,我发现了错误......我正在这样做

UIColor _textColor = [UIColor grayColor];
[string addAttribute:(id)kCTForegroundColorAttributeName value:(id)_textColor range:NSMakeRange(0, [string length])];

而不是这个

UIColor _textColor = [UIColor grayColor];   
[string addAttribute:(id)kCTForegroundColorAttributeName value:(id)_textColor.CGColor range:NSMakeRange(0, [string length])];

这有助于确保您使用的是正确的颜色对象!

【讨论】:

    【解决方案2】:

    有两种方法可以解决这个问题

    1) 我创建了 UILable 和 UITextView 的子类,使用核心文本 (CATextLayer) 作为标签/文本视图上的层,NSAttributedString 将存储有关字体和颜色的所有信息

    2) 您需要使用 NSAttributedString。检查 OHAttributedLabel,它扩展了 UILabel 并添加了对通过 NSAttributedString 以及其他帮助程序设置文本的支持。

    希望这会有所帮助。

    更多信息请查看我的帖子:How to change color of a word in UITextView?

    【讨论】:

    • 我实际上使用的是 NSAttributed 字符串,但我的问题是我似乎可以设置整个字符串的颜色,或者我可以将其保留为默认值并为各个子范围着色。不过,我似乎两者都做不到。我将尝试将我的一些代码编辑到原始问题中,以更好地解释我遇到的问题......
    • 其实,没关系...在编辑我的代码时,我发现了问题。 :)
    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2014-04-05
    • 2015-04-04
    • 2016-06-30
    • 1970-01-01
    • 2015-12-28
    • 2022-10-18
    相关资源
    最近更新 更多