自定義Button,重寫initWithFrame方法

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;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容