LayoutSubviews和drawRect调用时机
2020-02-22 本文已影响0人
深度码农患者
layoutSubViews调用时机
- init初始化不会调用layoutSubviews方法
- addSubview时会调用
- 改变一个UIView的frame时会调用
- 滚动一个UIScrollView导致UIView重新布局时会调用
- 旋转Screen会触发父UIView上的事件
- 手动调用setNeedsLayout或者layoutIfNeeded
drawRect调用时机
- 如果在UIView初始化时没有设置frame,会导致drawRect不被自动调用
- sizeToFit后会调用。这时候可以先用sizeToFit中计算出size,然后系统自动调用drawRect方法
- 通过设置contentMode为.redraw时,那么在每次设置或更改frame的时候自动调用drawRect
- 直接调用setNeedsDisplay,或者setNeedsDisplayInRect会触发drawRect