Ios 'UILabel'中'textColor'的延迟实例化引发错误
如果我取消注释self.numberLabel.textColor=UIColor.black,构建将编译,但会在模拟器中崩溃Ios 'UILabel'中'textColor'的延迟实例化引发错误,ios,swift,uilabel,lazy-loading,textcolor,Ios,Swift,Uilabel,Lazy Loading,Textcolor,如果我取消注释self.numberLabel.textColor=UIColor.black,构建将编译,但会在模拟器中崩溃 lazy public var numberLabel: UILabel = { self.numberLabel.textColor = UIColor.black return UILabel(frame: CGRect.init(x: 10, y: 40, width: self.bounds.size.width, height
lazy public var numberLabel: UILabel = {
self.numberLabel.textColor = UIColor.black
return UILabel(frame: CGRect.init(x: 10, y: 40, width: self.bounds.size.width, height: 20))
}()
错误状态为:“EXC\u错误访问”
惰性存储属性是初始值不为的属性
计算到第一次使用时为止。您表示一个懒惰的存储
属性,在其声明之前写入惰性修饰符
示例代码段-
Swift 3.x
lazy public var numberLabel: UILabel = {
let label = UILabel(frame: CGRect(x: 20, y: 20, width: 200, height: 21))
label.textColor = UIColor.black
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(numberLabel)
numberLabel.text = "Good"
}
惰性存储属性是初始值不为的属性
计算到第一次使用时为止。您表示一个懒惰的存储
属性,在其声明之前写入惰性修饰符
示例代码段-
Swift 3.x
lazy public var numberLabel: UILabel = {
let label = UILabel(frame: CGRect(x: 20, y: 20, width: 200, height: 21))
label.textColor = UIColor.black
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(numberLabel)
numberLabel.text = "Good"
}
在设置数字标签之前,请先参考它,最好的方法是:
lazy public var numberLabel: UILabel = {
let label = UILabel(frame: CGRect.init(x: 10, y: 40, width: self.bounds.size.width, height: 20))
label.textColor = UIColor.black
return label
}()
正如您可以看到的第一个“let label=”创建标签,然后可以执行所有初始化(如textcolor),最后我们返回标签,以分配给lazy属性。在设置数字标签之前,您指的是数字标签,最好的方法是:
lazy public var numberLabel: UILabel = {
let label = UILabel(frame: CGRect.init(x: 10, y: 40, width: self.bounds.size.width, height: 20))
label.textColor = UIColor.black
return label
}()
正如您看到的第一个“let label=”创建标签,然后可以执行所有初始化(如textcolor),最后我们返回标签,以分配给lazy属性。如何在尚未创建的对象上设置文本颜色?如何在尚未创建的对象上设置文本颜色?