layoutSubviews和layoutIfNeeded

作者: __Mr_Xie__ | 来源:发表于2020-01-03 17:32 被阅读0次

前言

layoutSubviewslayoutIfNeededUIView 的两个重要方法,下面我们主要从自定义 view 的角度去阐述这两个方法。

方法描述

  • layoutSubviews:在布局 UIView 的子控件的时候,一般我们会在 layoutSubviews 方法中设置 UIView 的子控件的 约束frame
  • layoutIfNeeded:当 UIView 调用 layoutIfNeeded 方法后,会 立即 调用 layoutSubviews 方法去布局 UIView 的子控件。

什么时候调用 layoutSubviews方法呢?

  • 当被 添加至父视图 中时会被调用(有延迟的调用);
  • 自己 添加子控件 时会被调用(有延迟的调用);
  • 自己的 尺寸发生变化 时会被调用(有延迟的调用);
    注⚠️:
    (1) 尺寸指的是宽或高,位置发生变化时是不会被调用的!
    (2)如果多次设置尺寸,但是尺寸没有变化,也不会被调用。
  • 当自己的 子控件尺寸发生变化 时会被调用(有延迟的调用);
  • 当滚动一个 UIScrollView 时会触发 layoutSubviews 方法(有延迟的调用);
  • 旋转屏幕 时会触发 layoutSubviews 方法(有延迟的调用);
  • 调用 layoutIfNeeded 方法时会被立即调用。

Author

如果你有什么建议,可以关注我的公众号:iOS开发者进阶,直接留言,留言必回。

相关文章

网友评论

    本文标题:layoutSubviews和layoutIfNeeded

    本文链接:https://www.haomeiwen.com/subject/ozzzoctx.html