码迷,mamicode.com
首页 > 移动开发 > 详细

iOS中UIButton的titleEdgeInsets和imageEdgeInsets

时间:2015-11-22 23:13:02      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:

  默认状态下,UIButton的imageView和titleLabel之间没有间距,而且两个作为整体,居中显示。

设置button的titleEdgeInsets和imageEdgeInsets不是根据按钮的上下左右边距,而是根据titleLabel和imageView的当前位置决定的,

但是在测试的过程中又发现问题,比如

CGFloat topMargin = 50;
self.btnTest.imageEdgeInsets = UIEdgeInsetsMake(topMargin, 0, 0, 0);

本行代码运行后按钮的imageView的位置应该相对之前的位置向下移动50,但是实际的情况并不是这样的,经过多次测试(topMargin取多次值),button的imageView向下偏移(以imageView之前的状态)的量始终是 topMargin/2。

(这样好奇怪啊。。。。。。最后经过思考……^_^~,由于imageEdgeInsets和titleEdgeInsets不是相对于按钮边距的值,而是相对于原来的位置的偏移。但是UIEdgeInsetsMake的参数有四个,top,left,button和right,而控件不可能同时即向上移动又向下移动,或者即向左又向右移动)

以下面为例:

self.btnTest.imageEdgeInsets = UIEdgeInsetsMake(topMargin, leftMargin, buttomMargin, rightMargin);

此时imageView相对于原始的偏移为:

x = (leftMargin - rightMargin)  / 2;

y = (topMargin - buttomMargin) / 2;

(实测)。

 

iOS中UIButton的titleEdgeInsets和imageEdgeInsets

标签:

原文地址:http://www.cnblogs.com/premier/p/4986872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!