initWithCoder & initWithFrame & awakeFromNib
initWithCoder:使用文件加載的對象調(diào)用(如從xib或stroyboard中創(chuàng)建)
initWithFrame:使用代碼加載的對象調(diào)用(使用純代碼創(chuàng)建)
initWithCoder: 只要對象是從文件解析來的随闪,就會調(diào)用initWithCoder
awakeFromNib: 從xib或者storyboard加載完畢就會調(diào)用
注:
a. initWithCoder: 方法被調(diào)用時扔罪,xib還未加載完畢髓堪,xib里面的控件此時為空,還未被創(chuàng)建,所以里面不能進行對控件的賦值等操作廓啊;
b. awakeFromNib: 方法被調(diào)用時,xib已經(jīng)加載完畢,里面的控件已經(jīng)創(chuàng)建出來恕曲,可以賦值等。
c. 在自定義view的.m里面一般同時寫initWithFrame:和initWithCoder:渤涌,而initWithCoder里面佩谣,主要可以寫一些屬性值的改變等操作(不要和控件有聯(lián)系即可,因為控件還沒創(chuàng)建出來)实蓬。