Swift 更改文本视图中文本的颜色
我有一个textview,它组合了几个字符串,每个字符串由一个新行分隔。每个字符串也有一个标题,我想用不同的颜色和粗体显示 我目前掌握的守则如下:Swift 更改文本视图中文本的颜色,swift,textview,nsattributedstring,Swift,Textview,Nsattributedstring,我有一个textview,它组合了几个字符串,每个字符串由一个新行分隔。每个字符串也有一个标题,我想用不同的颜色和粗体显示 我目前掌握的守则如下: let summaryText = "Summary \n" let summaryAttributes = [NSAttributedString.Key.foregroundColor: UIColor.orange] let summaryString = NSAttributedString(string: summaryText, attr
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
在这里你可以看到,我试图使“摘要”橙色。我还尝试将“Notes”标题显示为没有任何属性的普通字符串。这部分很好用。但是,“summaryString”有一个错误
错误是:
二进制运算符“+”不能应用于“NSAttributedString”和“String”类型的操作数
如何才能使其工作?您不能使用
+
附加NSAttributedString
创建一个nsmutableAttributeString
并构建它
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
此代码假定goalsettingmoretailssummary
和goalsettingmoretailssnotes
属于NSAttributedString
类型。如果它们只是String
,那么就从它们创建NSAttributedString
,就像我对文本字符串所做的那样。看看。你可以这样写:
Prestyler.defineRule("$", Prestyle.bold, UIColor.red)
label.attributedText = ("$My title$" + nextText).prestyled
使用NSMutableAttributeString及其append属性。