【问题标题】:how to prevent buttons from shrinking in a stackview如何防止按钮在stackview中缩小
【发布时间】:2019-05-07 08:59:09
【问题描述】:

我一直在努力让按钮(圆形)在堆栈视图中保持它们的大小,但无济于事。我有两行按钮,我将每一行放在自己的水平堆栈视图中,然后将两个堆栈视图嵌入外部堆栈视图,以便更轻松地设置约束。

问题在于按钮在纵向或横向时不会保持其原始大小。我缺少什么设置来实现这一点?我通过调整每个按钮的大小将每个按钮的大小设置为 w=50 和 h=50(无限制)

嵌入堆栈视图之前:

堆栈视图的顶行:

Each button is of Type CircularButton

【问题讨论】:

  • 这是 Xcode 10.1
  • 按钮绘图的扁平化表明您错误地执行了使按钮显示为圆形的任何操作。但你还没有告诉我们那是什么。
  • 已编辑帖子以显示按钮类型是 CircularButton 类型,如图所示
  • 这也发生在常规方形按钮上.....
  • 但是你仍然没有展示你正在做什么来得到这个错误的结果。按钮需要内部约束来赋予它们大小;你说你没有提供任何东西。为什么不?您如何期望以其他方式知道他们的身高?堆栈视图需要约束;这些是什么?您仍然没有提供任何信息。

标签: ios uistoryboard uistackview


【解决方案1】:

我通过调整每个按钮的大小将每个按钮的大小设置为 w=50 和 h=50(无限制)

这肯定是你做错的一件事:“没有约束”。堆栈视图是一个约束制造者。就是这样。但它不是读心器。它需要其排列的视图在某些配置下具有某些约束,以便知道您想要什么。你必须告诉它。约束就是你这样做的方式。

让我们规定您的很多问题都是一个红鲱鱼 - 按钮的圆角,双组堆栈视图。你想知道的是如何使三个按钮在堆栈视图中水平间隔均匀分布而不会丢失它们的大小。方法如下。

首先,像这样配置您的堆栈视图:

其次,为您的按钮设置高度和宽度约束,并将它们包装在堆栈视图中。现在使用更多约束来定位和调整堆栈视图的大小:

如您所见,这在正在运行的应用程序中可以正常工作:

界面的其余部分仅以此为基础。

【讨论】:

  • 如果我这样做是一个新项目,这些设置确实可以解决问题。一定是我的项目环境中导致圆圈在两行上向左移动的东西。我会继续玩它。感谢您的帮助!
  • 终于找出导致按钮显示不正确的问题的原因。由于某种原因,隐藏按钮会导致按钮倾斜。 // startButton.isHidden = true // stopButton.isHidden = true // resetButton.isHidden = false // saveButton.isHidden = true
  • 不应该。听起来您的堆栈视图可能有错误的约束。如果您可以制作一个简单的可重现案例,您能否将其作为一个新问题提出来?
  • 是的,但我不会无缘无故地查看您的代码。如果您在 Stack Overflow 上提出新问题,那么我很乐意提供帮助。
  • 完成....问题的标题是“为什么按钮在设置为隐藏时会在堆栈视图中移动?”
【解决方案2】:

在属性检查器中,您可以将对齐和分布设置为居中。这应该有效:

还为按钮提供相同的高度和宽度,或者为按钮设置 1:1 的纵横比。

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 2017-10-21
    • 2018-06-08
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多