layoutSubViews調(diào)用時(shí)機(jī)
- init初始化不會(huì)調(diào)用layoutSubviews方法
- addSubview時(shí)會(huì)調(diào)用
- 改變一個(gè)UIView的frame時(shí)會(huì)調(diào)用
- 滾動(dòng)一個(gè)UIScrollView導(dǎo)致UIView重新布局時(shí)會(huì)調(diào)用
- 旋轉(zhuǎn)Screen會(huì)觸發(fā)父UIView上的事件
- 手動(dòng)調(diào)用setNeedsLayout或者layoutIfNeeded
drawRect調(diào)用時(shí)機(jī)
- 如果在UIView初始化時(shí)沒(méi)有設(shè)置frame,會(huì)導(dǎo)致drawRect不被自動(dòng)調(diào)用
- sizeToFit后會(huì)調(diào)用帮坚。這時(shí)候可以先用sizeToFit中計(jì)算出size售睹,然后系統(tǒng)自動(dòng)調(diào)用drawRect方法
- 通過(guò)設(shè)置contentMode為.redraw時(shí)碾篡,那么在每次設(shè)置或更改frame的時(shí)候自動(dòng)調(diào)用drawRect
- 直接調(diào)用setNeedsDisplay归榕,或者setNeedsDisplayInRect會(huì)觸發(fā)drawRect