【问题标题】:How to change default UIButton padding when using auto-layout使用自动布局时如何更改默认 UIButton 填充
【发布时间】:2013-06-09 00:10:21
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios uibutton autolayout uiedgeinsets


    【解决方案1】:

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

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

    【讨论】:

    • 对于任何阅读本文的人,请注意,您必须设置 CONTENT insets,而不是 TITLE insets。
    【解决方案2】:

    我不确定你是否可以在不继承 UIButton 的情况下做到这一点。如果您愿意子类化,覆盖此方法可能会成功(我没有尝试过):

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

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 1970-01-01
      • 2014-11-07
      • 2015-10-30
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      相关资源
      最近更新 更多