一般来说,EdgeInsets属性是用来设置一个Button中的图片和文字之间间距的(切图)。下面列举出来三个属性进行设置:
- // 下面三个属性都是用来在Button内部切图用的,top、left、bottom、right是逆时针来看的四个方位,在这四个方位上设置数值,内部某某控件会被切掉,这部分切掉的区域是不能显示内容的。控件也就相应的被挤压显示
- // contentEdgeInsets 会影响UIButton内部的所有内容发生位移
- shareBtn.contentEdgeInsets = UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>);
- // titleEdgeInsets 只影响按钮内部的titleLabel
- shareBtn.titleEdgeInsets = UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>);
- // imageEdgeInsets 只影响按钮内部的imageView
- shareBtn.imageEdgeInsets = UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>);
举例来说:
上面图片中的按钮在一些app版本更新之后启动时的新版本特性中一般都会存在,这里大家一定要看明白,上面的图片和文字其实都属于一个UIButton的,他们分别是UIButton的image属性和title属性。那么,一般来说image和title之间有点距离会更加合适。我们挑选上面的一个或者多个方法,设置一下:
- // 设置shareBtn中 image和title 之间的间距,两个属性各设置7.5,显得更加对称
- shareBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 7.5, 0, 0);
- shareBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 7.5);
最后的效果: