美文网首页搜集知识程序员iOS Developer
总结-layoutSubview的调用场景

总结-layoutSubview的调用场景

作者: iOS小孟和小梦 | 来源:发表于2016-04-15 16:58 被阅读1646次

首先要起个代号(不然连我自己都会晕+_+)

视图A 、 被添加到视图A的子视图B


  • 使用addSubview添加时会调用layoutSubView
  • 在A开始被添加到父视图 (如果此时A没有frame 则不会调用layoutSubview)
  • 添加B 到A的时候调用 (如果此时B有frame 则会调用)

  • 设置A的父视图的Size时会调用
  • 设置A的Size时会进行智能判断-->仅当 Size与之前不同时,才会调用A的layoutSubview
  • 设置B的frame时会调用
    (如果仅仅设置frame 但是没有调用过addSubview添加到父控件上 那么也不会调用layoutSubview )

  • 滚动scrollview 的时候也会调用
  • 设备的orientation(方向)改变时,涉及改变的UIViewControl 的root view
    (此时所有的控件被重新布局,相当于A的frame被改变 那么会调用layoutSubview 而且如果控件有B的话会再调用一次layoutSubview)
  • Resizing(拉伸) 一个 控件 也会调用它的父控件的layoutSubview
  • 调用setNeedsLayout时

还有一个重要的点,layoutSubview不是在调用完比如addSubview等方法之后就马上调用,而是会在调用addSubview方法所在的作用域结束之后之后才调用,因此即使你在同一个方法中既使用了addSubViews又更改了frame,也是只会调用一次layoutSubview而已

相关文章

网友评论

本文标题:总结-layoutSubview的调用场景

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