2

我将代码从 Swift 3 转换为 Swift 4,但出现此错误:

类型“NSAttributedStringKey”没有成员“foregroundColorNSAttributedStringKey”

我的代码是:

let labelText = NSMutableAttributedString(string: (self.productDetailsInfo?.productAttributes?[indexPath.row].Name as String?)!)
labelText.append(NSAttributedString(string:"*"))
let selectedRange = NSMakeRange(labelText.length - 1, 1);
labelText.addAttribute(NSAttributedStringKey.foregroundColorNSAttributedStringKey.foregroundColor, value: UIColor.red, range: selectedRange)
labelText.addAttribute(NSAttributedStringKey.baselineOffset, value: 2, range: selectedRange)
4

3 回答 3

1

换行

  labelText.addAttribute(NSAttributedStringKey.foregroundColorNSAttributedStringKey.foregroundColor, value: UIColor.red, range: selectedRange)

  labelText.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: selectedRange)

您也可以使用addAttributes 方法一次为一个范围设置多个属性

  labelText.addAttributes([NSAttributedStringKey.foregroundColor:UIColor.red,NSAttributedStringKey.backgroundColor:UIColor.blue], range: selectedRange)
于 2018-02-13T08:56:47.280 回答
1

NSAttributedString.KeyforegroundColorNSAttributedStringKey中列出了此类属性

直接使用foregroundColorNSAttributedString.Key

在您的代码中替换NSAttributedStringKey.foregroundColorNSAttributedStringKey.foregroundColor为。NSAttributedStringKey.foregroundColor

尝试这个:

let labelText = NSMutableAttributedString(string: (self.productDetailsInfo?.productAttributes?[indexPath.row].Name as String?)!)
labelText.append(NSAttributedString(string:"*"))
let selectedRange = NSMakeRange(labelText.length - 1, 1);


// Remove foregroundColorNSAttributedStringKey
// Swift 4.1
labelText.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: selectedRange)
labelText.addAttribute(NSAttributedStringKey.baselineOffset, value: 2, range: selectedRange)


// Swift 4.2
labelText.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red, range: selectedRange)
labelText.addAttribute(NSAttributedString.Key.baselineOffset, value: 2, range: selectedRange)
于 2018-02-13T09:35:52.890 回答
1

在 Swift 4 中设置前景色属性:

[NSForegroundColorAttributeName: UIColor.white]
于 2019-05-21T03:39:45.540 回答