各种layout、nib、view总结

1、layoutSubviews(刷新子视图)

  • subviews重新布局
    1、init初始化不会触发layoutSubviews,但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发
    2、addSubview会触发layoutSubviews
    3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
    4、滚动一个UIScrollView会触发layoutSubviews
    5、旋转Screen会触发父UIView上的layoutSubviews事件
    6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

2、setNeedsLayout(重新布局)

在receiver标上一个需要被重新布局的标记,在系统runloop的下一个周期自动调用layoutSubviews

3、layoutIfNeeded(刷新布局)

  • 用于自动布局页面的刷新,有需要刷新的标记,立即调用layoutSubviews进行布局

4、setNeedsDisplay(重新绘图)

  • 绘图
    在receiver标上一个需要被重新绘图的标记,在下一个draw周期自动重绘,iphone device的刷新频率是60hz,也就是1/60秒后重绘

5、awakeFromNib(加载nib)

  • nib
    当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的 awakeFromNib函数来响应这个消息,通过nib文件创建view对象

6、loadView (view)

  • view
    开始加载视图的起始方法,除非手动调用,否则在ViewController的生命周期中没特殊情况只会被调用一次。

你可能感兴趣的:(各种layout、nib、view总结)