我想更改我的UITextField
和UITextView
文字颜色,但我不能。我收到错误: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)
答案 0 :(得分:1)
我不相信textColor采用CGColor。您是否尝试过使用UIColor(white: 1, alpha: 0.25)
?
就崩溃而言:我猜测(没有看到任何堆栈跟踪)它会发生,因为UITextField没有属性textContainer
。我会在调用该行之前检查对象的类型。
if let textView = $0 as? UITextView {
textView.textContainer.lineFragmentPadding = 0
}