iOS之UIEdgeInsetsMake
基础概念
解疑
Q1:一个普通UIButton设置了Image和Title后,如下图1所示,要变成图2的样子,Image和Title分别需要在水平和竖直方向如何移动?
A:运用数学计算,不难得出:
Image需要:
- 向右移动Title宽度的一半
- 向上移动Title高度的一半
Title需要: - 向左移动Image宽度的一半
- 向上移动Image高度的一半
Q2:为什么UIEdgeInsetsMake设置的距离需要是数学计算出来的值的两倍呢?
A:原因就在于,UIEdgeInsetsMake(top, left, bottom, right)的四个值,都是元素的边界线的移动距离,而并非是元素的移动距离。
现在固定左边界线移动右边界线,若右边界线往外移动2,那么元素实际上只向外移动了1(因为元素始终在四条边界线内区域的中心)。
所以现在我们不难得出结论,若要使元素移动距离x(无论是哪个方向上),在只移动该方向一条边界线的前提下,这条边界线需要移动2x才能满足需求。
Q2:如何实现需求?
A:
1 | - (void)setButtonInsects:(UIButton *)button { |
- Image:将上边界往上调titleSize.height高度,将右边界往右调titleSize.width宽度。
- Title: 将左边界往左调imgSize.width宽度, 将下边界往下调imgSize.height高度。
- 本文链接:http://katherineleeyq.cn/2019/01/18/iOS之UIEdgeInsetsMake/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!