自定義按鈕
- 在日常開發(fā)中,很多時候系統(tǒng)自帶的
UIButton不能滿足我們的需要,在這個時候我們就需要自定義按鈕 - 比如:按鈕中圖片和文字上下排列,或者說文字在左邊,圖片在右邊
自定義按鈕步驟
-
要弄清楚系統(tǒng)控件
UIButton的內(nèi)部結(jié)構(gòu)- 一個UIImageView(在左邊)
- 一個UIlabel(在右邊)
- 一個UIView(因為UIButton繼承自UIView)
新建一個類,繼承自
UIButton如果可以,需要給自定義的button一個屬性,傳遞以后要顯示的圖片和文字
在
initWithFrame:方法中設(shè)置button的一些屬性;比如:字體顏色,字體大小等
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
self.titleLabel.textAlignment = NSTextAlignmentCenter;
self.titleLabel.font = [UIFont systemFontOfSize:11];
}
return self;
}
- 在
imageRectForContentRect:和titleRectForContentRect:方法中設(shè)置圖片和標(biāo)題的位置
- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
}
- (CGRect)titleRectForContentRect:(CGRect)contentRect
{
}
- 在上面兩個方法中設(shè)置標(biāo)題和圖片的frame,有的時候是比較麻煩的,比如設(shè)置好了圖片的frame,想設(shè)置title的frame的時候需要圖片的數(shù)據(jù),就比較麻煩,所以,設(shè)置frame也可以在
layoutSubviews方法中設(shè)置