gpt4 book ai didi

ios - 如何在堆栈 View 中水平居中 UISwitch?

转载 作者:行者123 更新时间:2023-11-28 23:54:28 24 4
gpt4 key购买 nike

我正在使用 Interface Builder 创建应用程序。我想安排一组标签和相应的 UISwitch,以便所有标签都显示在屏幕的左半部分,而开关则在右侧。开关应与标签对齐。

为此,我尝试使用一个垂直堆栈 View ,其中嵌入了多个水平堆栈 View (每个标签/开关对一个水平堆栈 View )。为了正确对齐标签和开关,我将它们中的每一个都设置在一个空白的 UIView 中,并将它们(开关和标签)居中放置在相应的 UIView 上。然后将堆栈 View 设置为“居中”对齐和“均匀填充”分布。

通过此设置,我获得了适当的视觉布局,但即使每个父 View 都设置了“已启用用户交互”,也无法激活 UISwitch。如果我将开关直接移动到水平堆栈 View 中(没有将它嵌入空白 UIView 中),它可以正常工作,但我无法让它按我想要的方式居中。

我怎样才能拥有我想要的布局并且仍然具有功能性的 UISwitch?

我看过this question ,但似乎没有任何答案可以解决我的问题。


重现:

  1. 创建一个新的 View Controller
  2. 添加垂直堆栈 View (VSV)
  3. 将 VSV 的约束设置为与 View Controller 的 Root View 等高和等宽,并且水平和垂直居中
  4. 将 VSV 的对齐设置为“居中”并将分布设置为“平均填充”
  5. 向 VSV 添加 1+ 个水平堆栈 View (HSV)
  6. 将每个 HSV 设置为“居中”对齐和“均匀填充”分布
  7. 向每个 HSV 添加两个空白 UIView
  8. 对于每个 HSV,将其约束为与 VSV 的宽度相等
  9. 对于每个 HSV,将 UILabel 添加到第一个 UIView,将 UISwitch 添加到第二个 UIView
  10. 对于每个 UILabel 和 UISwitch,将其约束为在其父 UIView 上水平和垂直居中

当您运行应用程序时,布局是完美的。但是,即使每个连续的父 View 都启用了用户交互,也无法与任何 UISwitch 进行交互。

我在 Interface Builder 中的层次结构:IB Hierarchy

开关不起作用的内置应用程序:Test Application

最佳答案

您无法与开关交互的原因是因为包含它的空白 View 最终高度为 0。限制该(空白)父 View 的高度,使其不会调整为零,或限制开关顶部和底部到父级(值为 0)。

关于ios - 如何在堆栈 View 中水平居中 UISwitch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51529434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com