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:无法更改水平堆栈视图中的宽度的主要内容,如果未能解决你的问题,请参考以下文章