我在一个 UIView
的子类中有类似这样的代码:
override var bounds : CGRect {
didSet {
somelayer.frame = bounds
}
}
在相应的
somelayer
中,我有以下内容:override var bounds: CGRect {
didSet {
someFunction()
}
}
现在,如果使用
super.init(frame: someFrame)
来初始化视图,则第一个块不会被调用。这似乎表明bounds
属性与frame
没有同时设置。如果我将第一个块更改为
override var frame
,那么它将被super.init(frame: someFrame)
调用,并设置somelayer
的frame
。有趣的是,当这种情况发生时,第二个块被调用,表明bounds
和frame
同时设置(这也是我所期望的)。我有什么遗漏吗?
frame
属性上的观察者在初始化之后似乎也没有被调用。 - Jarrod Smith