处理 UIView 大小调整的最稳定方法



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];
} 

最新更新