完全解决UIButton的imageEdgeInsets
来源:互联网 发布:pdf 编辑器 for mac版 编辑:程序博客网 时间:2024/06/05 05:32
重要的事说三遍,我从网上找到的中文资料都多少有问题。
下面以imageEdgeInsets为例,只考虑水平方向,垂直方向和水平方向原理相同,
titleEdgeInsets和imageEdgeInsets也是一样的。
UIEdgeInsets的定义:
typedef struct UIEdgeInsets {
CGFloat top, left, bottom, right;
} UIEdgeInsets;
先说最终结论:
button的imageView最终水平位置为:imageView.frame.origin.x = imageView.frame.origin.x + imageEdgeInsets.left/2.0 - imageEdgeInsets.right/2.0。
结果就是:
imageEdgeInsets的left如果为+10,则button的imageView向右移动5。
imageEdgeInsets的left如果为-10,则button的imageView向左移动5。
imageEdgeInsets的right如果为+10,则button的imageView向左移动5。
imageEdgeInsets的right如果为-10,则button的imageView向右移动5。
1、如果button足够大,image是原尺寸显示,不会变形。
也就是说imageView的frame只决定image的位置,不影响image的size。
imageView本身的center始终位于frame的center,两者重合,frame的center改变则imageView将跟着移动。
2、image的frame对应为一个长方形,而imageEdgeInsets的值会移动这个长方形的各条边。
下面只以UIEdgeInsets的left来讲:
如果left的值为正,则使长方形的左边线向靠近长方形center的方向移动,左边线距离center更近,结果长方形变小(先不考虑移动超过右边线的这种情况)。
因为EdgeInsets意为内边距,以image的内容为border,以其frame为内边线,left为正的意思是内边距变大,因为border不可变,结果就是作为内边线的frame变小了。
如果left的值为负,长方形的左边线将远离center,长方形变大。
因为长方形变短10个单位,在长方形的左侧边线向右移动10之后,长方形center的位置也跟随左边线向右移动,
center向右移动的数量是10的一半:5。因为imageView的center始终重合于frame的center,
所以最终的结果就是imageView向右移动5:
imageView.frame.origin.x = imageView.frame.origin.x + imageEdgeInsets.left/2.0
0 0
- 完全解决UIButton的imageEdgeInsets
- UIButton 的 imageEdgeInsets 和 titleEdgeInsets
- UIButton的imageEdgeInsets和titleEdgeInsets
- UIButton 的 imageEdgeInsets 和 titleEdgeInsets
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- 关于UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton的titleEdgeInsets和imageEdgeInsets使用技巧
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- 理解UIButton的imageEdgeInsets和titleEdgeInsets
- UIButton的titleEdgeInsets和imageEdgeInsets属性
- UIButton imageEdgeInsets属性
- UIButton的imageEdgeInsets和titleEdgeInsets属性 —— HERO博客
- ios之UIButton的titleEdgeInsets和imageEdgeInsets属性
- 分清matlab与VS的快捷键
- NYOJ1170最大数
- IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
- 几大图片加载框架比较
- Intent介绍及Intent在Activity中的使用方法
- 完全解决UIButton的imageEdgeInsets
- JAVA的异常处理
- php 过滤特殊字符函数
- 前端图片压缩 pngquanty
- GridView的使用
- spring mvc 传递数组对象
- Linux根目录介绍
- 【MySQL】 [1045]Access denied for user ‘root’@’localhost’ 错误解决方法总结
- android中ScrollView常用属性汇总