一句话实现UIButton 内文字和图片的位置。
2017-12-18 本文已影响14人
草原野马
UIButton 的内部结构
想必大家都知道UIButton 的内部结构,实际就是有UILabel 和UIImageView 组合在一起的。
内部结构.png项目需求
想必大家的项目中都会有这样的需求,一个控件 既有图片又有文字,但是位置有时上下左右变化,但是我们又不想去用多个控件展示,为了减少便捷性,我们经常用一个UIButton代替。
解决办法
第一种办法
自定义Button 继承,然后内部布局里面的UILable和UIImageView的frame (缺点需要继承)
第二种办法
代码里面自己算self.titleEdgeInsets和self.imageEdgeInsets。(自己计算比较麻烦)
推荐的解决办法
目前觉的还是给UIButton 加类别的方法比较实用 在类别中暴露出方法 来确定图片的和文字的位置,以及它们之间的距离
自定义方法.png我们来不做任何操作里面的内部实现
不做任何操作的展示.png
我们为了图片和文字之间有20的距离,那么图片就要向左移动10 文字就要向右移动10.看实际代码
效果图.png 图片在左相距20.png
同样的道理 图片在右
图片在右.png
同样的道理 图片在上
图片在上.png同样的道理 图片在下
图片在下.png觉的这类类别还是很好用的 看到别人的demo 地址 https://github.com/yanhaiqiang/HQIconButton