美文网首页
iOS中setNeedsLayout与layoutIfNeede

iOS中setNeedsLayout与layoutIfNeede

作者: mr_ios_zhang | 来源:发表于2022-07-01 16:21 被阅读0次

    首先我们要弄明白这两个方法调用的时机:
    layoutIfNeeded
    对于已经标记刷新的布局,立即调用layoutSubviews进行布局(如果没有标记,不会调用layoutSubviews)。

    setNeedsLayout
    标记为需要重新布局,异步调用layoutIfNeeded刷新布局,不立即刷新,在下一轮runloop结束前刷新,layoutSubviews一定会被调用。

    总结:
    setNeedsLayout一定刷新,先对需要刷新的布局进行标记,但是存在延迟,底层其实也是调用layoutIfNeeded方法刷新。
    layoutIfNeeded只有被标记刷新,才会去刷新。
    [self setNeedsLayout];
    [self layoutIfNeeded];

    相关文章

      网友评论

          本文标题:iOS中setNeedsLayout与layoutIfNeede

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