iOS - Swift:TableView行中的多行标签

时间:2017-08-24 13:19:00

标签: swift uilabel line-breaks multiline textwrapping

我正在尝试在tableview单元格中插入一些多行标签,但它看起来如下图所示。我希望文本包装在换行符处并根据需要占用更多行,如果需要,可以增加单元格的高度。

在图像中我希望每个标签都有可能在多行中扩展。

标签嵌入垂直堆栈视图中,然后嵌入另一个堆栈视图中。

我尝试了很多种可能性,包括在视图中嵌入每个标签,将0设置为标签线,以及我在SO答案中找到的其他内容,但不是,标签没有正确包装,它们总是只占用一个线。

enter image description here

编辑:

我补充一点解释:

1)我认为问题是stackview,它自动设置子视图的高度。

2)是的,我可以使用动态高度单元格,但这不是重点,因为对我而言,单元格的高度就足够了,当文本没有占据两行时,单元格会有更多的空白它下的空间。所以我的问题只是包装嵌入在stackview中的标签文本

1 个答案:

答案 0 :(得分:6)

听起来你正在寻找的是动态细胞高度,有一些事情需要发生才能起作用:

1)设置标签行= 0

2)在viewDidLoad中设置tableview的estimatedRowHeight

3)在viewDidLoad中设置estimatedRowHeight之后,将rowHeight设置为UITableViewAutomaticDimension或者将heightForRow设置为UITableViewAutomaticDimension

4)确保您对要动态更改高度的标签没有高度限制

编辑更新的问题:

由于标签位于堆栈视图中,因此您需要确保堆栈视图没有任何高度限制,并且当标签展开时它将根据需要调整高度。