gpt4 book ai didi

ios - swift lazy var 使用 let constant

转载 作者:行者123 更新时间:2023-11-28 11:12:35 26 4
gpt4 key购买 nike

我有许多相同大小的按钮,我想通过惰性变量设置恒定宽度,我应该怎么做? JRTopView.buttonWidthbuttonWidth 都不起作用。

  class JRTopView: UIView {
let buttonWidth:CGFloat = 150
lazy var leftButton: UIButton! = {
let btn = UIButton(type: UIButtonType.Custom)
btn.backgroundColor = UIColor.greenColor()
btn.frame = CGRectMake(-30, 30, JRTopView.buttonWidth, buttonWidth)
return btn
}()
lazy var rightButton: UIButton! = {
let btn = UIButton(type: UIButtonType.Custom)
btn.backgroundColor = UIColor.greenColor()
btn.frame = CGRectMake(-30, 30, JRTopView.buttonWidth, buttonWidth)
return btn
}()
}

谢谢!

编辑:有趣的是,如果我使用 self.buttonWidth,它可以在 leftButton 中使用,但不能在 rightButton 中使用。 enter image description here

最佳答案

由于 buttonWidth 是一个实例属性,访问它的唯一方法是通过 JRTopView 的实例。

如果您在此类之外,您可以创建一个新实例并执行 yourInstance.buttonWidth,或者如果您在此类内,则只需执行 buttonWidth/self.buttonWidth

但是,作为一个对于 JRTopView 的所有实例始终具有相同值的常量,将其提升到类级别会更有意义:

静态让 buttonWidth:CGFloat = 150

这应该允许您执行 JRTopView.buttonWidth

关于ios - swift lazy var 使用 let constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34131653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com