- (instancetype)initWithFrame:(CGRect)frame;
自定義UIView可實(shí)現(xiàn)上述方法用于初始化其骄。
- (instancetype)initWithCoder:(NSCoder *)aDecoder;
當(dāng)UIView從xib或者storyboard中創(chuàng)建之前調(diào)用号杠。
- (void)awakeFromNib;
當(dāng)UIView從xib或者storyboard中創(chuàng)建時(shí)調(diào)用,位于initWithCoder之后绰更。
- (void)layoutSubviews;
默認(rèn)沒有做任何事情,需要重寫實(shí)現(xiàn)锡宋。調(diào)用時(shí)機(jī)如下:
1.但是調(diào)用initWiftFrame 并且參數(shù)frame不為0的時(shí)候會(huì)調(diào)用
2.調(diào)用addsubView時(shí)會(huì)調(diào)用
3.修改了frame的時(shí)候調(diào)用
4.UIScrollView滾動(dòng)的時(shí)候會(huì)調(diào)用此方法
5.屏幕旋轉(zhuǎn)的時(shí)候會(huì)調(diào)用
6.子視圖修改的時(shí)候也會(huì)調(diào)用父級(jí)視圖的此方法
7.調(diào)用setNeedsLayout+ layoutIfNeeded時(shí)會(huì)立即調(diào)用
- (void)drawRect;
相當(dāng)于開啟UIView的畫板功能儡湾,可使用Core Graphic相關(guān)API以View為畫布進(jìn)行繪圖功能等同于CALayer中的drawInContext:。
調(diào)用時(shí)機(jī)如下:
1.任何設(shè)置frame的時(shí)候
2.調(diào)用sizeToFit時(shí)會(huì)調(diào)用
3.setNeedsDisplay或者setNeedsDisplayInRect:時(shí)會(huì)調(diào)用
4.調(diào)用contentMode時(shí)會(huì)調(diào)用
5.以上前提frame!=0
- (CGSize)sizeThatFits:(CGSize)size;
返回適合的大小执俩。直接調(diào)用sizeThatFits時(shí)不會(huì)引發(fā)重繪等其他方法徐钠。調(diào)用sizeToFit時(shí)會(huì)調(diào)用該方法并重繪。