写项目的时候经常会遇到按钮上有图片和文字的情况,每次图片和按钮的位置都会有些变化,经常要调,没有难点,却很麻烦,所以自己封装了一个,用于图片和按钮的位置不同的变化,方便写项目时再去调整,节省时间,以下是我写项目常用的几种情况:
1、图片在上,文字在下
(1)默认状态,即图片与文字之间的间距为10,且居中
- (void)verticalImageAndtitleNormal;
![](https://upload-images.jianshu.io/upload_images/7984464-fffc4c35ce629394.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/476)
(2)图片与文字间的间距可调整,图片和文字整体在btn中的位置也可调整
- (void)verticalImageAndTitle:(CGFloat)spacing distanceMoved:(CGFloat)distanceMoved;
![](https://upload-images.jianshu.io/upload_images/7984464-ef629ddde119c177.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/520)
2、图片在下,文字在上
(1)默认状态,即文字与图片的间距为10,且居中
- (void)verticalTitleAndImageNormal;
![](https://upload-images.jianshu.io/upload_images/7984464-4e385e6a91bf31d9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/488)
(2)文字与图片的间距可调整,整体的位置也可在btn中进行调整
- (void)verticalTitleAndImage:(CGFloat)spacing distanceMoved:(CGFloat)distanceMoved;
![](https://upload-images.jianshu.io/upload_images/7984464-b1e9d2e669efa3a1.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/500)
3、图片在左,文字在右
(1)图片与文字间距为10,且与btn左侧位置的间距为10
- (void)horizontalImageAndTitleNormal;
![](https://upload-images.jianshu.io/upload_images/7984464-688fcc57776f3c00.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/492)
(2)图片与文字之间的间距可调整,且在btn中的位置可调整
- (void)horizontalImageAndTitle:(CGFloat)spacing type:(HorizontalLocationType)type distanceMoved:(CGFloat)distanceMoved;
![](https://upload-images.jianshu.io/upload_images/7984464-503e0b8880c3e687.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/516)
4、文字在左,图片在右
(1)默认状态,文字与图片间距为10,且居中
- (void)horizontalTitleAndImageNormal;
![](https://upload-images.jianshu.io/upload_images/7984464-5b18a1b703934970.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/516)
(2)文字与图片间距可调整,在btn中的位置可调整
-(void)horizontalTitleAndImage:(CGFloat)spacing type:(HorizontalLocationType)type distanceMoved:(CGFloat)distanceMoved;
![](https://upload-images.jianshu.io/upload_images/7984464-48955526a0da2d97.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/508)
主要是根据UIEdgeinsets进行的调整,btn默认的是图片在上,文字在下,二者间距为0,根据这两个变量进行修改时,要在默认的基础上进行移动,代码:git地址