iOS UIbutton正确的上图下文设置方法(完美设置)

话不多说先看代码

[but setTitleEdgeInsets:
       UIEdgeInsetsMake(but.frame.size.height/2,
                       (but.frame.size.width-but.titleLabel.intrinsicContentSize.width)/2-but.imageView.frame.size.width,
                        0,
                       (but.frame.size.width-but.titleLabel.intrinsicContentSize.width)/2)];
[but setImageEdgeInsets:
           UIEdgeInsetsMake(
                       0,
                       (but.frame.size.width-but.imageView.frame.size.width)/2,
                        but.titleLabel.intrinsicContentSize.height,
                       (but.frame.size.width-but.imageView.frame.size.width)/2)];

思路:
UIbutton的默认排版是 (图在左 字在右) 且 (图字 )中间没有间隔。
那么先设置文字。
top:我让文字在button的一半以下,所以top是button的高度一半。
left:整个button的宽度减去文字label的宽度后还剩下左边的默认imageView的宽度,那么先除2再减去原来的imageView的宽度。
bottom:底部距button的底部为0没有任何影响
right:右边则是button的宽减去label的宽度,如果为0会往右偏一点

图片
top:距离button顶部的距离为0没有任何影响
left:想让图片居中显示直接用button的宽度减去imageView宽度后除以2。
bottom:距离底部那么就设置距离底部为文字label的高度。正好在文字之上
right:同left 让图片居中显示,距离button右边相同的距离。(如果认为设置左边后,右边设置0,觉得反正左边设置齐了,右边不会多不会少,但是不要忘了这是EdgeInsets,如果右间距为0,那么就会往右靠,所以图片的左右距离button的边界保持一致)。

如果有问题欢迎评论,一起探讨解决这个问题。

你可能感兴趣的:(iOS UIbutton正确的上图下文设置方法(完美设置))