美文网首页
iOS - setNeedsLayout 和 layoutIfN

iOS - setNeedsLayout 和 layoutIfN

作者: jaycex2020 | 来源:发表于2020-09-21 15:29 被阅读0次

runloop的UI更新redraw存在延迟,当前的变化会在下一个cycle更新

- setNeedsLayout()

这是一个async的方法,setNeedsLayout立刻完成返回, 但是UI更新在之后完成。告诉系统layout要从画UIView和subviews子视图。

当需要调整当前view的子视图时,在主线程调取这个方法。这个方法不会强制立刻更新UI,而是会在下一个cycle更新UI,这样对性能优化比较好。

- layoutIfNeeded()

这是一个sync同步方法,立刻执行UI的更新,而不是等下一个cycle更新。当这个方法完成时,layout已经调整更新完成。

- layoutSubviews()

根据subviews的constraints更新子视图。子类可以override这个方法,进行精细subviews。

layoutSubviews()方法

不能主动调取layoutSubviews().

相关文章

网友评论

      本文标题:iOS - setNeedsLayout 和 layoutIfN

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