一、使用純代碼方式 initWithFrame:中添加子控制項 layoutSubViews中設置子控制項的fame 對外設置數據介面,重寫setter方法給子控制項設置數據顯示 在的viewController裡面使用init/initWithFrame:方法創建自定義類,並且給自定義類的frame賦值 ...
一、使用純代碼方式
- initWithFrame:中添加子控制項
- layoutSubViews中設置子控制項的fame
- 對外設置數據介面,重寫setter方法給子控制項設置數據顯示
- 在的viewController裡面使用init/initWithFrame:方法創建自定義類,並且給自定義類的frame賦值
- 對自定義類對外暴露的數據介面進行賦值
二、使用xib方式
- 創建xib,在xib中拖入需要添加的控制項並設置好尺寸,這個xib的Class要設置為我們定義的類
- 通過IBOutlet的方式,將xib中的控制項與自定義類進行關聯
- 對外設置數據介面,重寫setter方法給子控制項設置顯示數據
- 在viewController類裡面載入xib文件就可以得到對應的類,這裡不需要再設置自定義類的frame,因為xib已經有了整個view的大小,只需要設置位置,
- 對類對外暴露的數據介面賦值
註意:
如果使用代碼方式創建控制項,那麼創建時一定會調用initWithFrame:方法
如果使用xib/stotyboard方式創建控制項,那麼在創建時一定會調用initWithCoder:方法
在initWithCoder:裡面訪問屬性,會發現屬性為nil,因為此時自定義好控制項正在初始化,屬性還沒賦值。很多操作都在initWithCoder:後進行。
建議在awakeFromNib方法中進行初始化的額外操作,因為awakeFromNib是在初始化完成後調用的,所以在這個方法里訪問屬性就可以保證不為nil。