LayoutSubviews和drawRect调用时机

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

你可能感兴趣的:(LayoutSubviews和drawRect调用时机)