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此前调用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图