1. 系统默认 Button 添加图片文字样式(见下图):
Button默认状态图片文字位置.png
2. 现在想实现如下效果(见下图):
自定义Button图片在右边 文字在左边的效果.png
3. 实现代码
layoutSubviews
方法(见如下代码):
#import "HQCustomButton.h" @implementation HQCustomButton - (void)layoutSubviews { [super layoutSubviews]; /** 修改 title 的 frame */ // 1.获取 titleLabel 的 frame CGRect titleLabelFrame = self.titleLabel.frame; // 2.修改 titleLabel 的 frame titleLabelFrame.origin.x = 0; // 3.重新赋值 self.titleLabel.frame = titleLabelFrame; /** 修改 imageView 的 frame */ // 1.获取 imageView 的 frame CGRect imageViewFrame = self.imageView.frame; // 2.修改 imageView 的 frame imageViewFrame.origin.x = titleLabelFrame.size.width; // 3.重新赋值 self.imageView.frame = imageViewFrame; } @end
4. 实现效果(见下图):
实现效果.png
特别提示:
在重写 HQCustomButton(自定义 Button)的layoutSubviews
时候一定要先调用[super layoutSubviews];
方法,不然按钮会显示不出来(见下图):
一定要先调用[super layoutSubviews].png
不掉用[super layoutSubviews]会出现的问题.png