如何在使用自动布局时改变默认的UIButton填充



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

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

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

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

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

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

我不确定你是否可以做到这一点没有子类化UIButton。如果您愿意创建子类,重写此方法可能会达到目的(我还没有尝试过):

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

最新更新