如何在使用auto时更改默认的UIButton填充

当在iOS 6中使用自动布局时,UIButton的内在内容大小似乎在按钮文本周围包含大约10px的填充。 有没有办法控制这个填充值? 例如,我希望能够做到这一点,这将在每边设置填充为5px:

[button setPadding:UIEdgeInsetsMake(5, 5, 5, 5)];

我试过设置contentEdgeInsets,titleEdgeInsets和imageEdgeInsets,都无济于事。 奇怪的是,在contentEdgeInsets中指定一个负左或右值似乎有一些效果,但不是顶部或底部。

无论哪种方式,我希望能够将实际填充值指定为正数,而不是将默认值调整为负数。 任何人都知道这是可能的吗?


我意识到我在两年前发布了这个问题,但我想跟进并注意contentEdgeInsets属性现在看起来可以正确地使用autolayout。 例如,下面的代码会生成一个按钮,其内容周围有20像素的边距:

button.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20);

我不确定你是否可以在没有继承UIButton的情况下做到这一点。 如果你愿意继承,重写这个方法可能会诀窍(我没有尝试过):

- (UIEdgeInsets)alignmentRectInsets { return UIEdgeInsetsMake(5, 5, 5, 5); }

链接地址: http://www.djcxy.com/p/28251.html

上一篇: How to change default UIButton padding when using auto

下一篇: UIButton with an image and text