美文网首页
LayoutSubView

LayoutSubView

作者: DeerRun | 来源:发表于2018-12-13 18:29 被阅读3次
    • 1、layoutSubviews
      这个方法,默认没有做任何事情,需要子类进行重写 。 系统在很多时候会去调用这个方法,初始化不会触发layoutSubviews,但是如果设置了不为CGRectZero的frame的时候就会触发。
      1.直接调用[self setNeedsLayout];(这个在上面苹果官方文档里有说明)
      2.addSubview的时候。
      3.当view的size发生改变的时候,前提是frame的值设置前后发生了变化。
      4.滑动UIScrollView的时候。
      5.旋转Screen会触发父UIView上的layoutSubviews事件(这个我验证了一下 确实没有触发layoutSubviews方法,查了很多资料都说会触发,大家自己定夺)。

    • 2、layoutIfNeeded
      也就是使用约束的时候 调一下可以立即更新效果
      setNeedsLayout方法并不会立即刷新,立即刷新需要调用layoutIfNeeded方法!
      如果要立即刷新,要先调用[view setNeedsLayout],把标记设为需要布局,然后马上调用[view layoutIfNeeded],实现布局

    • 3、setNeedsDisplay
      与setNeedsLayout方法相似的方法是setNeedsDisplay方法。该方法在调用时,会自动调用drawRect方法。drawRect方法主要用来画图。所以,当需要刷新布局时,用setNeedsLayOut方法;当需要重新绘画时,调用setNeedsDisplay方法。

    • 4、sizeThatFits、sizeToFit
      一般在使用UILabel的时候会用到,使用这两个方法之前,必须要给label赋值,否则不会显示内容的。

    相关文章

      网友评论

          本文标题:LayoutSubView

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