1.设置UIButton图片和文字居中,最经典的需求就是tabbar了,直接上方法:
[button setTitleEdgeInsets:UIEdgeInsetsMake(20,- image.size.width, 0, 0)];
[button setImageEdgeInsets:UIEdgeInsetsMake(-20, 0, 0,-titleWidth)];
就是设置title的left向左偏移image的宽度,image的right向右偏移title的宽度。这样就相当于image的宽度增加了titleWidth,title的宽度增加了imageWidth,它俩正好相等,所有都显示在中间。另外就是title向下偏移,image向下偏移,最终效果图:
2.设置UIButton图片和文字位置左右互换,这种需求也挺多,身边大多数人都是用数字一点点试,其实有更简洁的方法:
[button setTitleEdgeInsets:UIEdgeInsetsMake(0, - image.size.width, 0, image.size.width)];
[button setImageEdgeInsets:UIEdgeInsetsMake(0, titleWidth, 0, -titleWidth)];
相对于居中的设置,这个方法多了title的right向左偏移image的宽度,image的left向右偏移title的宽度,这样title和image都保持了各自的宽度,title整体向左移动了image 的宽度,正好在右边留下了image的位置,然后image向右移动title的宽度,两个正好做了交换。效果图: