iOS如何根据标签内容大小动态设置堆栈视图宽度高度&宽度

时间:2018-03-23 06:26:40

标签: ios swift swift4 stackview

enter image description here

如何根据标签的内容宽度设置stackView的宽度?

1 个答案:

答案 0 :(得分:-1)

这可以在堆栈视图中轻松实现。您所要做的就是通过给出堆栈视图的任意两个相邻边缘(例如,在您的情况下为前导和顶部)相对于其超视图的约束来修复堆栈视图在超视图中的位置。

您不必分别在标签之间给出约束,例如垂直堆栈的垂直间距或水平堆栈的水平间距约束(只要您不想覆盖基本行为的基本行为)堆栈视图)。所有这些都可以使用堆栈视图的分布和空间属性轻松管理(您可以在堆栈视图的属性检查器中找到它们)

我建议浏览Apple's doc on UIStackView,特别是" 常见堆栈视图布局"。在"仅定义位置"它表示,

  

您可以通过固定其中的两个来定义堆栈视图的位置   其超视图的相邻边缘。在这种情况下,堆栈视图的大小   根据其排列的视图,在两个维度上自由增长。这个   当您需要堆栈视图的内容时,方法特别有用   以其内在的内容大小出现,并且您想要安排其他内容   用户界面元素相对于堆栈视图。

其次,由于您在表视图中使用堆栈视图,因此如果要在加载表视图后动态更改标签的内容。然后,您应该调用 TableView beginUpdates endUpdates ,以便根据调整后的堆栈视图查看表格大小增长/缩小/调整&# 39;高度/宽度。

如果您仍然遇到任何问题。请提供有关您希望实现的UI(预期)及其当前行为方式的更多详细信息。这有助于提供更准确的答案。

希望它有所帮助! :)