我需要UILabel的第一个字符与其余标签颜色不同。我正在使用以下代码:
let attributedString: NSMutableAttributedString = NSMutableAttributedString(string: cell.label.text!)
attributedString.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: NSRange(location: 0, length: 1))
cell.label.attributedText = attributedString
这只是导致第一个字符消失。对于attributedString的打印语句如下所示(显然正确):
■{NSForegroundColor = "UIExtendedSRGBColorSpace 1 0 0 1";} restOfText{}
我在做什么错了?
答案 0 :(得分:1)
问题是长度为1的NSRange
值。对于Swift字符串,请使用专用的NSRange
初始化程序,并使用String.Index
范围和目标字符串
let string = cell.label.text!
let attributedString: NSMutableAttributedString = NSMutableAttributedString(string: string)
attributedString.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: NSRange(...string.startIndex, in: string ))
答案 1 :(得分:0)
编写的代码没有问题。后来我不小心覆盖了cell.label.text。哎呀