中心在水平堆栈视图中对齐开关

时间:2017-06-16 14:17:33

标签: ios swift xcode

注意:我对iOS开发完全陌生。

在故事板中,我有一个垂直堆栈视图,里面有水平堆栈视图。

在水平堆栈视图中,我有一个标签和一个开关。我将两个堆栈视图的分布更改为"同等地填充"。

enter image description here

enter image description here

enter image description here

目前,这就是视图的样子:

enter image description here

标签水平和垂直对齐,但开关位置错误。我还希望开关像标签一样对齐,以便它出现在标签的右侧和同一垂直层面上。

我已经尝试过使用故事板的各种选项,但似乎没有任何效果。

7 个答案:

答案 0 :(得分:1)

问题在于,随着尺寸的变化,开关本身始终位于左上角。创建一个视图作为容器,并将开关放在该视图中,然后将开关的水平和垂直约束设置为相对于该视图居中(CTRL +从开关拖动到它的父视图,并选择'center horizo​​ntal < / p>

答案 1 :(得分:1)

  1. 将水平UIStackView的对齐方式设置为居中。
  2. 将开关嵌入垂直UIStackView中(水平UIStackView内)。
  3. 将新的UIStackView的对齐方式设置为Center。

答案 2 :(得分:0)

如果向UILabel添加高度约束,您将看到它的行为与UISwitch完全相同。当开关具有“自然”高度约束时,UILabel可以填充容器。

  • 如果要将视图与中心对齐并在另一个下方拥有更多切换标签对,请为每对创建一个容器视图,并将它们直接放在第一个StackView中或更改父(垂直)StackView配置(因为你实际上是在那里发行的)
  • 如果预期结果是问题中的其他详细信息

答案 3 :(得分:0)

您不需要垂直堆叠。以下是我推荐的教学/学习经历。

  1. 从头开始。
  2. 创建一个视图,该视图是您希望标签和开关所在的区域。确保设置了约束。 (更改背景颜色,以便更好地看到它。)
  3. 在该视图中,放置标签并切换。
  4. 突出显示标签和开关,然后选择水平堆栈视图。
  5. 将水平堆栈的约束设置为其超级视图(即,您在步骤2中创建的视图)
  6. 配置水平堆栈视图直到开心或回到SO并提出新问题

答案 4 :(得分:0)

这很简单。

您的horizontal stackView将包含UILabelUIView(我们称之为vSwitchContainer)。

现在将您的开关置于vSwitchContainer内。为UISwitch

指定水平和垂直居中的约束

答案 5 :(得分:0)

  1. 将水平stackView对齐方式设置为居中并分配到 填充。
  2. 将具有优先级的开关水平内容设置为必需。

答案 6 :(得分:0)

在Storyboard发行版中,将fill设置为fill equals,然后在堆栈视图中添加uiview。然后设置label和UISwitch的宽度。