typedef struct {
CGFloat top, left, bottom, right;
} UIEdgeInsets;
// top 正(向下移动) 负(向上移动)
// left 正(向右移动) 负(向左移动)
// bottom 正(向上移动) 负(向下移动)
// right 正(向左移动) 负(向右移动)
我的理解:
比如说,UIButton 设置Image
[button setImage:backgroundButtonImage forState:UIControlStateNormal];
假如说:btn 的大小: 64 * 64 Image的大小 32 * 32 这个时候,image是在Button中显示的,通过设置contentEdgeInsets,来改变Image在Btn 中的位置
按照我的理解可以这样解释:top就是距离顶部的距离在默认的基础上又加上设置的距离,拿开头的button来说,在button仅设置image的时候(如果同时设置了image和title效果又是不一样的,下面会详解,稍安勿躁),image默认是居中的,相当于进行了这样的设置:
[button setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
如果我们在这个时候设置了:
[button setImageEdgeInsets:UIEdgeInsetsMake(20, 0, 0, 0)];
就相当于在图片居中的基础上,将图片又下移了20,如果是-20则是在原有的基础上向上移20,其他几个参数同理,正数就是距相应的边的距离
增加,负数就是距相应的距离减少。
http://00red.com/blog/2015/07/28/teacher-swift-ui-button/
http://victorchee.github.io/blog/button-layout-with-image-and-title/