写项目的时候经常会遇到按钮上有图片和文字的情况,每次图片和按钮的位置都会有些变化,经常要调,没有难点,却很麻烦,所以自己封装了一个,用于图片和按钮的位置不同的变化,方便写项目时再去调整,节省时间,以下是我写项目常用的几种情况:
1、图片在上,文字在下
(1)默认状态,即图片与文字之间的间距为10,且居中
- (void)verticalImageAndtitleNormal;
![](https://i-blog.csdnimg.cn/blog_migrate/1aed149f6b7f10e1be103c7015e4e2c6.webp?x-image-process=image/format,png)
(2)图片与文字间的间距可调整,图片和文字整体在btn中的位置也可调整
- (void)verticalImageAndTitle:(CGFloat)spacing distanceMoved:(CGFloat)distanceMoved;
![](https://i-blog.csdnimg.cn/blog_migrate/16e1de07d42db6788a21ab03fb63ceb4.webp?x-image-process=image/format,png)
2、图片在下,文字在上
(1)默认状态,即文字与图片的间距为10,且居中
- (void)verticalTitleAndImageNormal;
![](https://i-blog.csdnimg.cn/blog_migrate/e665246e8d3c0c00a10df967b54d9fa2.webp?x-image-process=image/format,png)
(2)文字与图片的间距可调整,整体的位置也可在btn中进行调整
- (void)verticalTitleAndImage:(CGFloat)spacing distanceMoved:(CGFloat)distanceMoved;
![](https://i-blog.csdnimg.cn/blog_migrate/d64c8615ed29504700f9bef71e1e026d.webp?x-image-process=image/format,png)
3、图片在左,文字在右
(1)图片与文字间距为10,且与btn左侧位置的间距为10
- (void)horizontalImageAndTitleNormal;
![](https://i-blog.csdnimg.cn/blog_migrate/486c9dbee5dd097b90bceb8a39125793.webp?x-image-process=image/format,png)
(2)图片与文字之间的间距可调整,且在btn中的位置可调整
- (void)horizontalImageAndTitle:(CGFloat)spacing type:(HorizontalLocationType)type distanceMoved:(CGFloat)distanceMoved;
![](https://i-blog.csdnimg.cn/blog_migrate/ff1b1abc760971015a3f535c87dccbf8.webp?x-image-process=image/format,png)
4、文字在左,图片在右
(1)默认状态,文字与图片间距为10,且居中
- (void)horizontalTitleAndImageNormal;
![](https://i-blog.csdnimg.cn/blog_migrate/ac2c6daffce13e3cf8d9dd69e2dfa418.webp?x-image-process=image/format,png)
(2)文字与图片间距可调整,在btn中的位置可调整
-(void)horizontalTitleAndImage:(CGFloat)spacing type:(HorizontalLocationType)type distanceMoved:(CGFloat)distanceMoved;
![](https://i-blog.csdnimg.cn/blog_migrate/771114995b5fc470d8afff5a5258bf3b.webp?x-image-process=image/format,png)
主要是根据UIEdgeinsets进行的调整,btn默认的是图片在上,文字在下,二者间距为0,根据这两个变量进行修改时,要在默认的基础上进行移动,代码:git地址