Stackview使用隐藏按钮

时间:2017-05-04 18:57:15

标签: swift xcode autolayout

我正在使用xcode 7.3.1界面构建器,并在堆栈视图中将uilabel和uibutton放在一起。

View

UIabel离开了,UIButton对了

BeforeStacked

一旦我将它们嵌入到堆栈视图中,uilabel就会扩展以填充整个堆栈视图,按钮根本不可见。

UILabel扩展以填充整个堆栈视图。

afterStack

作为故障排除的一部分,我尝试通过添加宽度约束使UILabel更窄,一旦添加我得到一个错误,说宽度与UILable.leading对齐:Superview和UILable.trailing对齐:Superview。我没有设置这些约束中的任何一个,并且没有遇到其他堆栈视图的问题。

Stack Identity Stack Attributes

4 个答案:

答案 0 :(得分:2)

要获得看起来像第一张图片的视图,请执行以下操作。

首先删除您拥有的视图(稍后再添加)

现在添加一个堆栈视图并添加约束以在屏幕上显示它。顶部,底部,前导,尾随。

现在设置这些属性。

  • 轴:水平
  • 间距:16
  • alignment:fill
  • 发布:填写
  • 布局边距:自定义(顶部:16,底部:16,左:16,右:16)

现在添加标签和按钮。设置标签文本和按钮文本。

现在为按钮添加一个宽度约束(仅限宽度),使其保持所需的宽度。

那应该排序。如果它没有,因为我仍然不知道你实际想要实现的布局。

玩弄数字以试图让它正确。只是不添加任何其他约束。你不需要任何。

如果您添加一个屏幕截图,显示您希望视图的外观(包括超级视图等),则可以更轻松地提供帮助。您目前隐藏了许多信息,这些信息很难提供帮助。

答案 1 :(得分:0)

试试这个:

  • 删除所有约束
  • 将堆栈放在您想要的位置
  • 使用水平和垂直对齐(使用当前画布值)
  • 应用宽度和高度限制

答案 2 :(得分:0)

我找到了这个问题的最终原因。

问题是“查看信息”按钮设置为“隐藏”。这是因为除非满足特定情况,否则不会出现按钮。由于按钮设置为“隐藏”,因此堆栈视图会自动调整约束以使其不显示。

解决方案是取消选中“隐藏”并按照我想要的方式排列所有内容,然后重新检查按钮的“隐藏”。

虽然我能够创建新的标签和按钮并将它们放入堆栈视图,但是一旦我将按钮标记为“隐藏”,它们很快就会遇到同样的问题,所以下面的答案确实帮助我找到原因。

答案 3 :(得分:-1)

您只需要进行对齐=填充和分布即可按比例填充