自定義按鈕
- 在日常開發(fā)中,很多時(shí)候系統(tǒng)自帶的
UIButton
不能滿足我們的需要誊涯,在這個(gè)時(shí)候我們就需要自定義按鈕 - 比如:按鈕中圖片和文字上下排列迹蛤,或者說文字在左邊,圖片在右邊
自定義按鈕步驟
-
要弄清楚系統(tǒng)控件
UIButton
的內(nèi)部結(jié)構(gòu)- 一個(gè)UIImageView(在左邊)
- 一個(gè)UIlabel(在右邊)
- 一個(gè)UIView(因?yàn)閁IButton繼承自UIView)
新建一個(gè)類败去,繼承自
UIButton
如果可以放航,需要給自定義的button一個(gè)屬性,傳遞以后要顯示的圖片和文字
在
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
{
}
- 在上面兩個(gè)方法中設(shè)置標(biāo)題和圖片的frame,有的時(shí)候是比較麻煩的吓妆,比如設(shè)置好了圖片的frame赊时,想設(shè)置title的frame的時(shí)候需要圖片的數(shù)據(jù),就比較麻煩行拢,所以祖秒,設(shè)置frame也可以在
layoutSubviews
方法中設(shè)置