我正在编写一个简单的 IRC 客户端,我在 Twitter 的 iOS 应用程序外观之后对其进行建模。我已经截取了 Twitter 应用程序的屏幕截图,以供参考:
它看起来像一个简单的表格视图,每个单元格内都有一些标签。因此,在我的应用程序中,我以编程方式创建表格和单元格格式。我的自定义单元格中只有两个标签,我将它们放在另一个之上。顶部标签是一个简单的 1-liner。底部标签我想包含更长的消息,并且需要它在我指定的宽度内自动换行到多行。
我如何实现这一目标?
到目前为止,我已经尝试将标签的框架显式设置为我想要的尺寸,但如果这就是我所做的一切,它不会自动换行。它只是水平流出单元格。然后我尝试sizeToFit
在tableView:cellForRowAtIndexPath:
函数中为这个标签调用 ,但它似乎以非常小的宽度自动换行 - 文本在两个或三个字母之后换行,然后垂直流出单元格。
我似乎无法弄清楚如何让标签中的文本在指定宽度后换行。有任何想法吗?
我的自定义单元格类:https ://github.com/ryancole/pound-client/blob/master/pound-client/views/MessageListCell.m
cellForRowAtIndexPath
函数:https : //github.com/ryancole/pound-client/blob/master/pound-client/controllers/MessageListViewController.m#L62-L84
编辑1:
为了演示当我设置numberOfLines
为 0 时发生了什么,对于无限制,我附上了一个被调用的屏幕截图。它在几个字符之后换行,而不是首先占用 UILabel 框架的指定宽度。这是在被调用之前设置的sizeToFit
。