美文网首页
UIView Layout

UIView Layout

作者: fd1a9ea4a20e | 来源:发表于2017-06-16 15:06 被阅读27次

    简单记录 自学非博客:
    我们的View在Init的时候是做了以下顺序的操作的

    1.约束
    2.layout
    3.display

    调用setNeedsLayout()<异步方法> 在UIKit Main Run Loop循环中,的下一个渲染周期调用layoutSubviews()

    调用layoutIfNeeded()<同步方法> 强制系统在当前的渲染周期内进行从此视图到其子视图的渲染

    setNeedsLayout和layoutIfNeeded区别,比如,如果我改变约束,并且用一个动画持续2s,然后用setNeedsLayout发现并没有动画效果,为什么呢,因为他默认是在下一个渲染周期进行图像渲染,所以动画线程无法捕获其动作,所以没有动画渲染。 如果使用layoutIfNeeded在当前渲染周期重新渲染绘制,所以动画线程就能捕捉到此动作,然后进行动画渲染。

    调用setNeedsDisplay() 重新绘制 -> draw(ract)

    相关文章

      网友评论

          本文标题:UIView Layout

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