我正在使用以下代码使用 foreground color 更改属性字符串的 fontSwift 。但是字体完美地改变没有任何问题,但 foreground color 没有改变

var checklistText = NSMutableAttributedString()
        checklistText = NSMutableAttributedString(string: "\(lblChecklistName.text!),\(checklistName)")
        checklistText.addAttribute(NSFontAttributeName,
                                   value: UIFont(
                                    name: "Helvetica",
                                    size: 11.0)!,
                                   range: NSRange(location: lblChecklistName.text!.length(), length: checklistName.length()))
        checklistText.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: NSRange(location: lblChecklistName.text!.length(), length: checklistName.length()+1))
        lblChecklistName.attributedText = checklistText

最佳答案

我遇到了同样的问题。虽然我没有使用范围来构建 AttributedString我的代码看起来像

self.contentTextLabel.attributedText = NSAttributedString(string: "content",
                                                            attributes: [.foregroundColor: UIColor.red, .background: UIColor.blue])

运行时,背景色显示为蓝色,但前景色不显示为红色。我认为这是一个 swift 的问题,所以我也在 Objective-C 中尝试过,但仍然不起作用。

我正在使用 Storyboard,我通过删除该标签上的命名颜色来解决这个问题。我认为这是 Apple 的错误,以某种方式在标签上设置的命名颜色覆盖了属性字符串中设置的前景色。

关于ios - 属性字符串前景色在 Swift 中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38474777/

10-10 20:12