【问题标题】:UIStackView issue with Distribution [closed]分发的 UIStackView 问题[关闭]
【发布时间】:2022-01-21 06:56:21
【问题描述】:

我遇到了 UIStackview 分发的问题。我用align centerFill Proportionally 分布做了水平UIStackView。但我没有得到所附图片的确切结果。

在这里,我在模拟器图像上附加了 xcode 自适应布局和输出。左右是 UIViews,它只包含背景颜色,中心有 UILabel 和文本。那么固有内容大小将如何适用于空 UIView,我们如何实现这一点?

Xcode adaptive layout image

iPhone 12 Pro max output image

提前致谢

【问题讨论】:

  • 请附上相关代码和你实际得到的截图。
  • 另外对于水平堆栈视图,请注意对齐属性控制元素的垂直对齐方式,而不是水平对齐方式。
  • @shim 我更新了截图和问题,请检查。这是 UIView 的 UIView 固有内容大小的主要问题。

标签: ios swift uistackview


【解决方案1】:

查看预期输出,您应该使用Fill Proportionally 分布而不是“平均填充”。如果您将堆栈视图固定到水平边缘(前导和尾随),Fill Proportionally 就足够了。

此外,无需为 Hello 文本添加固定/恒定宽度,因为 UILabel 已经具有固有的内容大小(Fill Proportionally 分发使用它来放置排列的子视图)。这也将使您的 UI 更加面向未来:您可能希望将来本地化您的应用,并且“Hello”文本会根据语言变大或变短。

【讨论】:

  • 我试过了,但这里的主要问题是左右是 UIViews 只有背景颜色,但没有任何子视图。请参阅附加的图片链接 [xcode 自适应布局] (i.stack.imgur.com/gVBlp.png) 和 [输出] (i.stack.imgur.com/R8eID.png)
  • @Kingdom 为什么不为分隔线添加子视图?您的每个子视图都可以包含一个高度约为 1pt 的视图,您将该子视图固定到其父视图的水平边缘并将其垂直居中。这应该足以实现您的预​​期输出。或者,您也可以在两个视图内绘制这些分隔线,而不是添加新的子视图。
  • 不工作。它不工作。请您在最后尝试一下。
  • @Kingdom 我创建了一个示例项目。看看吧:github.com/DeluxeAlonso/StackOverflowSampleProject
  • @Kingdom 我刚刚遇到了同样的问题。你是对的,按比例填充不起作用。我用来实现您预期设计的方法是使用填充分布,并且我还创建了一个约束,以便两个侧视图具有相同的宽度。让我知道它是否对您有用。
猜你喜欢
  • 2020-07-03
  • 1970-01-01
  • 2016-08-19
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 2011-06-21
相关资源
最近更新 更多