initWithCoder
- 解檔方法,使用xib/storyboard等文件都會調(diào)用這個(gè)方法;
- 并不是一個(gè)初始化的好地方(當(dāng)從Nib中加載時(shí)),因?yàn)橛行﹐utlet可能為nil,所以這個(gè)時(shí)候我們最好使用awakeFromNib。
awakeFromNib
- 當(dāng)使用xib/storyboard,是一個(gè)好的初始化去處。
- 只會被加載一次。
- 當(dāng)你需要寫一個(gè)UIView的子類,并且想在load nib的時(shí)候做一些初始化工作的時(shí)候,可以選擇。bundle在load nib時(shí)會給每一個(gè)View對象發(fā)送一個(gè)awakeFromNib消息。
initWithFrame
- 用于代碼創(chuàng)建,可以動態(tài)地添加組件&設(shè)置自身的屬性
iOS中比較重要的幾個(gè)方法
+ (void)load -> +(void)initialize -> - (void)loadView
->
- (void)viewDidLoad ->
- (void)viewWillAppear:(BOOL)animated ->
- (instancetype)initWithCoder:(NSCoder *)aDecoder ->
- (void)awakeFromNib ->
- (instancetype)initWithFrame:(CGRect)frame ->
- (void)layoutSubviews
load:加載到內(nèi)存中,程序剛啟動的時(shí)候調(diào)用。調(diào)用在main函數(shù)之前。
initialize:初始化類,類第一次使用的時(shí)候調(diào)用。
loadView:設(shè)置控制器的根View,重寫該方法后,以該方法為主,storyboard文件將不再起作用。