UIButton 上默认是图片在左文字在右,而大多数情况这样默认的的显示形式都不能满足我们的需求,改变它们的原理很简单,就是利用button 自带的两个方法
setTitleEdgeInsets: setImageEdgeInsets:
后面都跟一个UIEdgeInsets,其中四个值上、左、下、右
UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);
四个数值真实的作用是在原来的边距值基础上增加或减少某个间距,负值便是减少,例如
[button setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 60)];
[button setImageEdgeInsets:UIEdgeInsetsMake(0, 60, 0, 0)];
title 的CGFloat right改变的60 是基于原位置的titleLabel的右边框向左平移60像素,也就是到右边框的距离。
image也是一样,距离原来imageView的左边框向右平移了60像素。
[button setTitleEdgeInsets:UIEdgeInsetsMake(30, 0, 0, 30)];
[button setImageEdgeInsets:UIEdgeInsetsMake(0, 30, 30, 0)];
上下移动的原理同左右;