无法分配到类型' UIColor !!'的不可变表达式

时间:2016-12-21 21:52:20

标签: ios swift swift3

我想更改我的UITextFieldUITextView文字颜色,但我不能。我收到错误:Cannot assign to immutable expression of type 'UIColor!!'。我遇到的另一个错误是当尝试使用lineFragmentPadding更改填充时应用程序崩溃。 ):

我的代码:

override func viewDidLoad() {
        super.viewDidLoad()

[nameTxt, emailTxt, cityTxt, messageTxt].forEach {
            ($0 as AnyObject).layer.borderWidth = 0.5; // works fine
            ($0 as AnyObject).layer.cornerRadius = 6; // works fine
            ($0 as AnyObject).layer.borderColor = UIColor(white: 0.2, alpha: 0.25).cgColor // works fine
            ($0 as AnyObject).textColor = UIColor(white: 1, alpha: 0.25).cgColor // error here
            ($0 as AnyObject).textContainer.lineFragmentPadding = 0  // Makes app crash

        }

}

为什么以及如何解决?

我正在使用Swift 3和xCode 8.2(8C38)

1 个答案:

答案 0 :(得分:1)

我不相信textColor采用CGColor。您是否尝试过使用UIColor(white: 1, alpha: 0.25)

就崩溃而言:我猜测(没有看到任何堆栈跟踪)它会发生,因为UITextField没有属性textContainer。我会在调用该行之前检查对象的类型。

if let textView = $0 as? UITextView {
   textView.textContainer.lineFragmentPadding = 0
}