美文网首页
layoutSubviews调用时机

layoutSubviews调用时机

作者: 哥只是个菜鸟 | 来源:发表于2020-06-12 17:54 被阅读0次

init方法不会调用layoutSubviews,但是是用initWithFrame进行初始化时,当rect的值不为CGRectZero时,会触发

  • addSubview会触发layoutSubviews方法
  • setFrame只有当设置的frame的参数的size与原来的size不同,才会触发其viewlayoutSubviews方法
  • 滑动UIScrollView会调用scrollviewscrollview上的viewlayoutSubviews方法
  • 旋转设备只会调用VCviewlayoutSubviews方法
  • 直接调用[self setNeedsLayout];(这个在上面苹果官方文档里有说明)
    -layoutSubviews方法:这个方法默认没有做任何事情,需要子类进行重写
    -setNeedsLayout方法:标记为需要重新布局,异步调用layoutIfNeeded刷新布局,不立即刷新,但layoutSubviews一定会被调用
    -layoutIfNeeded方法:如果有需要刷新的标记,立即调用layoutSubviews进行布局(如果没有标记,不会调用layoutSubviews
    如果要立即刷新,要先调用[view setNeedsLayout],把标记设为需要布局,然后马上调用[view layoutIfNeeded],实现布局
    在视图第一次显示之前,标记总是需要刷新的,可以直接调用[view layoutIfNeeded]

相关文章

网友评论

      本文标题:layoutSubviews调用时机

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