1.為什么要自定義控件?
目的是為了封裝一些固定的屬性
兩個條件:一是界面中包含多個相同的控件,無論是xib中拖進來的,還是代碼中利用for創建出來的 ? ?二是多個控件屬性相同且固定的設置,如文字大小,文字顏色,一創建出來就長這個樣子,不再變化
準則就是:把每個控件都一樣的屬性寫到里面,保證按鈕一創建出來就是這個樣子,不一樣的東西寫到外面,如:文字,frame每個按鈕不一樣
2.這些屬性的設置寫到系統的哪個方法里面?
自定義控件的步驟:
在initWithFrame中初始化子控件,在layoutSubviews中布局子控件,在模型的set方法中給子控件傳數據
3.文字大小和文字顏色的屬性設置寫到initWithFrame方法里面
不管是調用init還是initWithFrame都會來到這里,所以用這個方法自定義控件比較合適,一定要調用super
-(instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
//字體
self.titleLabel.font = [UIFont systemFontOfSize:15];
//設置正常狀態和選中狀態是的顏色
[self setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[self setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
}
return self;
}