谈AutoLayout关于update的多少个章程

UIView是我们平时利用的一个为主控件,其中有多少个基本的布局方法需要了解。

  • layoutSubViews:
    添加子视图常重写这多少个情势,这多少个方法是用来再度布局子视图的,常用来对子视图布局,或者在任何格局中调用以达成重新布局的功效。

  • setNeedsLayout
    告诉页面需要改进,但是不会及时初叶更新,执行后会立刻调用layoutSubviews

  • layoutIfNeeded
    告诉页面布局顿时更新,所以一般都会和setNeedsLayout一道行使。假使期待霎时生成新的frame需要调用此方法,利用这一点一般布局动画可以在立异布局后一直行使那一个艺术让动画片生效。

  • setNeedsUpdateConstraints
    告诉需要更新约束,可是不会立即开端

  • updateConstraintsIfNeeded
    报告即刻更新约束

  • updateConstraints
    系统立异约束

触发layoutSubviews的时机

  • init艺术起头化不会接触layoutSubviews,但是是用initWithFrame
    举办伊始化时,当rect的值不为CGRectZero时,会触发。
  • addSubview方法会触发layoutSubviews
  • 设置viewFrame会触发layoutSubviews,前提是frame的值设置内外暴发了变动。
  • 滚动一个UIScrollView会触发layoutSubviews
  • 旋转Screen会触发父UIView上的layoutSubviews
  • 变更一个UIView大小的时候也会触发父UIView上的layoutSubviews

专注:layoutSubViews在drawRect往日调用。

相关文章