UIView
上有许多几何相关的属性。
-
frame
-
bounds
-
transform
也许更多。
如果我想在调整视图大小时执行某些行为,我该怎么办?
我通常尝试覆盖-layoutSubviews
方法,但它也被非调整大小事件调用。即使我覆盖了所有属性,我仍然无法确定我已经处理了所有的可能性。
处理调整大小事件最稳定和推荐的方法是什么?
在 Swift 中,你可以执行以下操作:
override var bounds: CGRect {
didSet {
// Do stuff here
}
}
我通常不会覆盖layoutSubviews
来调整大小,正是因为你说的。我编写自己的layoutSubviewz
并在需要时调用它,例如,我像这样覆盖setFrame
:
-(void)setFrame:(CGRect)frame
{
[super setFrame:frame];
[self layoutSubviewz];
}