![](https://img.haomeiwen.com/i1928930/f9c77afb280a85ae.png)
随着做过的项目越来越多,发现很多iOS控件的基础属性越来越不能满足实际开发需求了,今天总结一下UIButton的几个不常用但缺很有必要的属性。
一、默认的按钮样式
![](https://img.haomeiwen.com/i1928930/98a0494f415ff6fa.png)
这是我们简单常用的按钮样式,在此不再多做介绍。
二、左文右图按钮
![](https://img.haomeiwen.com/i1928930/121fa79935fda7a6.png)
左文右图也是开发过程中常见的一种按钮样式。代码实现方式如下:
[button setTitleEdgeInsets:UIEdgeInsetsMake(0, -button.imageView.bounds.size.width, 0, button.imageView.bounds.size.width)];
[button setImageEdgeInsets:UIEdgeInsetsMake(0, button.titleLabel.bounds.size.width, 0, -button.titleLabel.bounds.size.width)];
关于UIEdgeInsetsMake的用法,相信大家都了解。(不懂得可百度学习)另外。建议大家直接将按钮的这种样式实现代码部分封装成工具类方法,如下:
//实现button左文右图
+ (void)becomeButtonStyle:(UIButton *)button {
[button setTitleEdgeInsets:UIEdgeInsetsMake(0, -button.imageView.bounds.size.width, 0, button.imageView.bounds.size.width)];
[button setImageEdgeInsets:UIEdgeInsetsMake(0, button.titleLabel.bounds.size.width, 0, -button.titleLabel.bounds.size.width)];
}
这样我们使用该样式的时候只需要简单调用即可:
[Tool becomeButtonStyle:self.myButton];//self.myButton 是当前需要实现左文右图的按钮
【友情提示】需要给图片文字之间增加间隙的话,我们只需要简单的在文字字符串前后增加空格即可
三、上图下文按钮
![](https://img.haomeiwen.com/i1928930/1950332f082192d5.png)
上图下文样式的按钮多用于一些页面悬浮按钮,比如客服/帮助等按钮,一般会配合切圆显示,例如:
![](https://img.haomeiwen.com/i1928930/7ea0e9dec042e5c6.png)
代码实现方式如下:
//实现button上图下文
+ (void)getButtonStyle:(UIButton *)button {
button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
button.titleEdgeInsets = UIEdgeInsetsMake(button.imageView.frame.size.height, -button.imageView.frame.size.width, 0, 0);
button.imageEdgeInsets = UIEdgeInsetsMake(-button.imageView.frame.size.height, 0, 0, - button.titleLabel.bounds.size.width);
}
如果我们需要调整图片与文字之间的间隙,只需要在对应的位置上增加相应的数字即可,比如我们将图片与文字之间的间隙调整为20,实现图片上衣10,文字下移10,代码修改实现如下:
button.titleEdgeInsets = UIEdgeInsetsMake(button.imageView.frame.size.height, -button.imageView.frame.size.width, -10, 0);//实现文字下移
button.imageEdgeInsets = UIEdgeInsetsMake(-button.imageView.frame.size.height - 10, 0, 0, - button.titleLabel.bounds.size.width);//实现图片上移
调整优化之后的效果如下:
![](https://img.haomeiwen.com/i1928930/46af6d0db32aa51f.png)
与之对应的上文下图样式在实际开发过程中很少用到,在此不做介绍,实现方式相同。
四、图文共存居左居右按钮
![](https://img.haomeiwen.com/i1928930/0e952c0b8544a863.png)
图文同时居左按钮多见与通知按钮:
![](https://img.haomeiwen.com/i1928930/9dceae157e4db0d2.png)
代码实现如下:
button.contentHorizontalAlignment =UIControlContentHorizontalAlignmentLeft;//居右的话,改为UIControlContentHorizontalAlignmentRight
button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
图文同时居右按钮效果:
![](https://img.haomeiwen.com/i1928930/df19de24d41752ad.png)
希望本文对您有所帮组,加油!!!
网友评论