自定义按钮
- 在日常开发中,很多时候系统自带的
UIButton
不能满足我们的需要,在这个时候我们就需要自定义按钮 - 比如:按钮中图片和文字上下排列,或者说文字在左边,图片在右边
自定义按钮步骤
-
要弄清楚系统控件
UIButton
的内部结构- 一个UIImageView(在左边)
- 一个UIlabel(在右边)
- 一个UIView(因为UIButton继承自UIView)
新建一个类,继承自
UIButton
如果可以,需要给自定义的button一个属性,传递以后要显示的图片和文字
在
initWithFrame:
方法中设置button的一些属性;比如:字体颜色,字体大小等
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
self.titleLabel.textAlignment = NSTextAlignmentCenter;
self.titleLabel.font = [UIFont systemFontOfSize:11];
}
return self;
}
- 在
imageRectForContentRect:
和titleRectForContentRect:
方法中设置图片和标题的位置
- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
}
- (CGRect)titleRectForContentRect:(CGRect)contentRect
{
}
- 在上面两个方法中设置标题和图片的frame,有的时候是比较麻烦的,比如设置好了图片的frame,想设置title的frame的时候需要图片的数据,就比较麻烦,所以,设置frame也可以在
layoutSubviews
方法中设置