繁体   English   中英

在 textview 中更改文本颜色

[英]Change colour of text in textview

我有一个文本视图,它结合了几个字符串,每个字符串由一个新行分隔。 每个字符串还有一个标题,我想用不同的颜色和粗体显示。

我到目前为止的代码如下:

let summaryText = "Summary \n"
let summaryAttributes = [NSAttributedString.Key.foregroundColor: UIColor.orange]
let summaryString = NSAttributedString(string: summaryText, attributes:summaryAttributes)

GoalSettingDetailsTextView.attributedText = summaryString + GoalSettingMoreDetailsSummary + "\n\n" + "Notes \n" + GoalSettingMoreDetailsNotes

在这里,您可以看到我已尝试将“摘要”设为橙色。 我还尝试将“注释”标题显示为没有任何属性的普通字符串。 这部分工作正常。 但是,我收到“summaryString”错误。

错误是:

二元运算符“+”不能应用于“NSAttributedString”和“String”类型的操作数

我怎样才能让它工作?

您不能使用+附加NSAttributedString

创建一个NSMutableAttributedString并构建它。

let attrStr = NSMutableAttributedString(attributedString: summaryString)
attrStr.append(GoalSettingMoreDetailsSummary) // not sure what GoalSettingMoreDetailsSummary is
attrStr.append(NSAttributedString(string: "\n\nNotes \n"))
attrStr.append(GoalSettingMoreDetailsNotes) // not sure what GoalSettingMoreDetailsNotes is

GoalSettingDetailsTextView.attributedText = attrStr

此代码假定GoalSettingMoreDetailsSummaryGoalSettingMoreDetailsNotesNSAttributedString类型。 如果它们只是String那么就像我对文字字符串所做的那样,从它们创建NSAttributedString

看看Prestyler 你可以这样写:

Prestyler.defineRule("$", Prestyle.bold, UIColor.red)
label.attributedText = ("$My title$" + nextText).prestyled

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM