[英]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
此代码假定GoalSettingMoreDetailsSummary
和GoalSettingMoreDetailsNotes
是NSAttributedString
类型。 如果它们只是String
那么就像我对文字字符串所做的那样,从它们创建NSAttributedString
。
看看Prestyler 。 你可以这样写:
Prestyler.defineRule("$", Prestyle.bold, UIColor.red)
label.attributedText = ("$My title$" + nextText).prestyled
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.