Swift 调用draw()后,如何给变量指定一个特定的值?
我试图声明一个常量,该常量应该有一个使用Swift 调用draw()后,如何给变量指定一个特定的值?,swift,uiview,lazy-loading,constants,drawrect,Swift,Uiview,Lazy Loading,Constants,Drawrect,我试图声明一个常量,该常量应该有一个使用UIView的frame属性计算的值。当然,在draw()之外声明常量时,我无法访问此属性,我正在尝试找到解决方法 我读过关于惰性变量的书,但我不确定这是否是最好的选择。此外,惰性变量不能是常量 我应该将常量更改为一个惰性变量还是有其他方法?如果你从一个帧中计算出某个东西,那么根据定义它不是一个常量,因为1)帧只有在布局过程之后才有一个有效值,2)帧实际上可以根据设备的方向改变,多任务,以及视图呈现的上下文。对于尚未设置帧的情况,应使用可选变量或带有默认值
UIView
的frame
属性计算的值。当然,在draw()
之外声明常量时,我无法访问此属性,我正在尝试找到解决方法
我读过关于惰性变量的书,但我不确定这是否是最好的选择。此外,惰性变量不能是常量
我应该将常量更改为一个
惰性变量
还是有其他方法?如果你从一个帧中计算出某个东西,那么根据定义它不是一个常量,因为1)帧只有在布局过程之后才有一个有效值,2)帧实际上可以根据设备的方向改变,多任务,以及视图呈现的上下文。对于尚未设置帧的情况,应使用可选变量或带有默认值的变量,具体取决于更适合您的用例。如果可以保证在布局发生之前不会有人调用该属性,则可以使用lazy。只需使用getter而不使用setter创建计算属性即可