我有一个表格视图,里面有一个标签的单元格,没什么奇怪的。 我希望这个单一标签包含2种不同颜色的文本:
let red = NSAttributedString(string: "Red color",
attributes:
[NSForegroundColorAttributeName: UIColor.redColor(),
NSFontAttributeName: normalFont])
let blue = NSAttributedString(string: "Blue color",
attributes:
[NSForegroundColorAttributeName: UIColor.blueColor(),
NSFontAttributeName: boldFont])
let attributedText = NSMutableAttributedString(attributedString: red)
attributedText.appendAttributedString(blue)
self.labelInformation.attributedText = attributedText
问题:文字全是蓝色,我无法理解原因。
如果我打印出attributedText
,我会得到:
Red color
{
NSColor = "UIExtendedSRGBColorSpace 1 0 0 1";
NSFont = "<UICTFont: 0x104249d80> font-family: \"Open Sans\"; font-weight: normal; font-style: normal; font-size: 18.00pt";
}Blue color{
NSColor = "UIExtendedSRGBColorSpace 0 0 1 1";
NSFont = "<UICTFont: 0x10b51d7c0> font-family: \"Open Sans\"; font-weight: bold; font-style: normal; font-size: 20.00pt";
}
看起来没问题!
问题必须与表视图相关,因为在视图上应用相同的代码。
有什么建议吗?
更新
此代码位于自定义单元格视图的方法中:
class CustomViewCell: UITableViewCell {
func setup() {
// code above
}
}
在控制器中:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomIdentifier") as! CustomTableViewCell
cell.setup()
return cell
}
答案 0 :(得分:-1)
尝试类似的东西
myMutableString.addAttribute(NSFontAttributeName,
//: Make a big blue P
myMutableString.addAttribute(
NSFontAttributeName,
value: UIFont(
name: "AmericanTypewriter-Bold",
size: 36.0)!,
range: NSRange(
location:0,
length:1))
myMutableString.addAttribute(
NSForegroundColorAttributeName,
value: UIColor.blue(),
range: NSRange(
location:0,
length:1))
答案 1 :(得分:-1)
我发现AppDelegate中的错误:
UILabel.appearance().textColor = color
因此解决方案是将此代码放在单元类上:
override func awakeFromNib() {
super.awakeFromNib()
self.labelInformation.text = nil
self.labelInformation.textColor = nil
}