typedef struct UIEdgeInsets {
CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
} UIEdgeInsets;
UIEdgeInsets实际就是一个结构体
UIEdgeInsetsMake(CGFloat top , CGFloat left , CGFloat bottom , CGFloat right )
,要设置的就是四个边距,(warning:left以右为正方向,right以左为正方向,这个
不一定对、不一定对、不一定对(说三遍)
,但是可以帮助理解下面进行偏移时+ -距离,top向下为正和bottom向上为正)。
先看一张图:
图中,蓝色标识为可变区域, 绿色标识为不变区域。
UIEdgeInsets
结构体的属性
top
与
bottom
为一对,用来指定纵向可变区域(黑色虚线矩形),
left
与
right
为一对,用来指定横向可变区域(白色虚线矩形)。当UIButton/UIImageView的
size
大于UIImage的
size
时,会调整图片中可变区域大小以铺满整个控件,具体调整规则如下:
(1)控件宽度大于图片宽度,拉伸白色虚线矩形
(2)控件高度大于图片高度,拉伸黑色虚线矩形
(3)控件宽度小于图片宽度时,横向整体缩小(可变区与不变区比例不变)
(4)控件高度小于图片高度时,纵向整体缩小(可变区与不变区比例不变)
说明:这四句总结我不知道你们有没有理解,反正我是没有理解。
上面都是引用别人写的东西,也该说说自己的内容了。
UIEdgeInsetsMake(CGFloat top , CGFloat left , CGFloat bottom , CGFloat right )