UIView之setNeedsDisplay和setNeedsLayout

  • setNeedsDisplay方便绘图
    其实最终调用的是drawRect方法

    1.drawRect是在viewDIdLoad和loadView之后被调用的
    2.在调用sizeToFit后被调用,执行的步骤是先根据sizeToFit计算出size,然后系统自动调用drawRect方法
    3.直接调用setNeedsDisplay进行绘制

  • setNeedsLayout方便加载数据
    使用场景

    1.init初始化不会触发layoutSubviews
    2.addSubview会触发layoutSubviews
    3.设置view的Frame时会触发layoutSubviews,当然前提是frame的值前后发生了变化
    4.滚动一个UIScrollView会触发layoutSubviews
    5.旋转Screen会触发父UIView上的layoutSubviews
    6.改变一个UIView大小的时候也会触发父UIView上的layoutSubviews
    7.直接调用方法setLayoutSubviews

你可能感兴趣的:(UIView之setNeedsDisplay和setNeedsLayout)