更改文本视图中文本的颜色

时间:2019-03-11 03:28:03

标签: swift textview nsattributedstring

我有一个结合了多个字符串的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'类型的操作数

我该如何工作?

2 个答案:

答案 0 :(得分:1)

您不能使用+附加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

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

答案 1 :(得分:0)

看看Prestyler。您可以这样写:

autoscaling_group_name