这是一个关于 UIView
的边界变量何时设置和初始化的问题。我的 View 中有一个变量 ballSize
,它是使用 View 的边界变量初始化的,如下所示:
private var ballSize: CGSize {
let size = bounds.size.width / 20
return CGSize(width: size, height: size)
}
一切都按预期顺利进行。那么 UIView 的边界到底是什么时候设置的呢?假设我可以在 UIView
类中的变量初始化中使用边界,这总是安全的吗?
最佳答案
似乎不允许在 UIView
类中的变量初始化中使用“bounds”,因为这相当于“self.bounds”。事实上,如果我尝试这样做,我会收到“无法在属性初始值设定项内使用实例成员“边界”;属性初始值设定项在“ self ”可用之前运行”错误:
private var ballSize = CGSize(宽度:bounds.size.width/20,高度:bounds.size.height/20)
出于某种原因,问题中的上述代码可以访问“self.bounds”,因为该变量是计算属性。
关于swift - 假设已设置边界,则初始化 UIView 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42290514/