Button默认状态图片文字位置.png1. 系统默认 Button 添加图片文字样式(见下图):
自定义Button图片在右边 文字在左边的效果.png2. 现在想实现如下效果(见下图):
3. 实现代码
-
自定义 HQCustomButton 继承自 UIButton,重写
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
-
在创建 Button 的地方用自定义 HQCustomButton 创建即可(见如下代码):
HQCustomButton *button01 = [[HQCustomButton alloc] init];
button01.titleLabel.font = [UIFont systemFontOfSize:14];
[button01 setTitle:@"科室" forState:UIControlStateNormal];
UIImage *imageBtn01 = [UIImage imageNamed:@"YellowDownArrow"];
[button01 setImage:imageBtn01 forState:UIControlStateNormal];
[view addSubview:button01];
[button01 mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(view);
make.left.equalTo(view).offset(kScreenWidth / 8);
}];
实现效果.png4. 实现效果(见下图):
特别提示:
在重写 HQCustomButton(自定义 Button)的layoutSubviews
时候一定要先调用[super layoutSubviews];
方法,不然按钮会显示不出来(见下图):
网友评论