【问题标题】:Increase area of UIButton in UIStackView在 UIStackView 中增加 UIButton 的面积
【发布时间】:2018-11-21 16:11:34
【问题描述】:

我在 UIStackView 中嵌入了几个 UIButton。我了解 UIStackView 在布局时仅采用 UIButton 的固有大小。但是我想在 UIStackView 内增加 UIButton 的高度/宽度。如果没有 UIStackView,我可以轻松增加或减少 UIButtons 的帧大小。 UIStackView 是怎么回事?

详细信息:假设我给了 3 个 UIButtons,只有 UIImages,没有文本。按钮 1 为 80x80,按钮 2 图像为 30x30,按钮 3 图像为 30x30。我希望按钮 2 和 3 的触摸区域至少为 45x45 而不拉伸图像。当它不在 UIStackView 中时,我可以像这样简单地调整 UIButton 的大小。但是对于 UIStackView,所有按钮大小都是图像的大小(固有大小),我不知道如何修复。

【问题讨论】:

  • 您能分享一下您希望如何显示按钮以及您目前已经达到的效果吗?
  • 您应该能够为放置在堆栈视图中的按钮添加高度和/或宽度限制。
  • 但是使用自动布局设置按钮的宽度和高度,为什么会出现自动布局错误(故事板中的红色框),需要更新间距值?

标签: ios swift uiview ios-autolayout uistackview


【解决方案1】:

如果您将宽度/高度约束添加到按钮堆栈视图,则会根据约束而不是按钮的固有大小调整子视图的大小。

【讨论】:

  • 手动指定 UIButton 的宽度和高度时出现自动布局错误(情节提要中的红色框)。为什么会发生这种情况?
  • 因为UIStackView 试图根据其分布和对齐方式添加自己的约束。
【解决方案2】:

为此,我通常使用contentEdgeInsets 属性。如果还不够,您需要添加一些自动布局约束。

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多