iOS:无法更改水平堆栈视图中的宽度

Posted

技术标签:

【中文标题】iOS:无法更改水平堆栈视图中的宽度【英文标题】:iOS: Can't change a width in a horizontal stackview 【发布时间】:2018-03-20 15:59:18 【问题描述】:

我开始使用 ios 应用程序并创建一个表格视图。在我的桌子上,我有一个像这样的单元格。

现在我需要将水平堆栈视图与星星垂直和水平居中。此堆栈视图具有固定的宽度和高度。

它必须看起来像这样。

为此,我将它放在另一个水平堆栈视图中。我尝试添加与label 相同的约束

问题是这个外部堆栈视图不像标签那样伸展。我还看到它的宽度和高度是灰色的,我无法更改它们。为什么?

【问题讨论】:

你不能水平居中 StackView 吗? 请发布该堆栈视图的属性检查器的屏幕截图 不要将你的“星”堆栈视图放在另一个堆栈视图中。删除前导和尾随约束,并简单地将其“水平居中”约束到其上方的标签。 【参考方案1】:

有很多方法可以自动布局。

我认为您应该更好地了解 StackViews 以备将来使用。 我建议阅读这些资源:

https://developer.apple.com/documentation/uikit/uistackview https://www.raywenderlich.com/160646/uistackview-tutorial-introducing-stack-views-2

为了实现你所需要的:

    仅使用 1 个包含星星的水平 StackView。水平居中将stackview约束到标签。

    使用 2 个 StackView 并保持约束。外层stackview,改为垂直轴居中对齐。

属性检查器中的方法2图像(cmd + option + 4):

【讨论】:

"方法2" 一个选项,但是使用堆栈视图来对齐一个元素确实是错误的方法。 两种布局都有优点。选项 1 取决于标签的布局。如果标签上的约束中断(尽管不太可能),它也会弄乱星星的布局。 Stackviews 很便宜,因为它只是一个转换层。

以上是关于iOS:无法更改水平堆栈视图中的宽度的主要内容,如果未能解决你的问题,请参考以下文章

iOS中的堆栈视图问题

在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS

水平堆栈视图内的标签宽度相等?

IOS 堆栈视图 - 多个水平文本字段

iOS - 在堆栈视图中拉伸的图像

动态宽度大小以适应堆栈视图中的控件