Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 调用draw()后,如何给变量指定一个特定的值?_Swift_Uiview_Lazy Loading_Constants_Drawrect - Fatal编程技术网

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创建计算属性即可