如何在不重新加载表的情况下调整表格单元格中的标签大小?

时间:2016-11-05 00:25:57

标签: ios swift uitableview uilabel

我有一个表格,并且单元格有一个标签,我希望能够直接更新标签而无需重新加载表格或单元格。我找到了一种方法来做到这一点并且有效:

let cell = self.tableView.cellForRowAtIndexPath(NSIndexPath(forRow: index, inSection: 0)) as! cellClass
     cell.textLabel.text = newText as? String

唯一的问题是标签的大小没有变化。如果重新加载表,标签会更改大小以适应文本量。我尝试使用layoutIfNeeded()和sizeToFit(),但标签不会扩展到第二行。宽度不是很大,它主要是它不会包裹,所以换句话说,高度不会延伸到更多的线。

1 个答案:

答案 0 :(得分:0)

首先,我建议创建一个自定义单元格(UITableViewCell的子类),并将UILabel命名为不同的东西,比如articleTitleLabel(取决于您的上下文)。 “textLabel”是一个继承的属性,我想你仍然可以使用它,但请确保在“awakeFromNib”方法中设置它(设置numberOfLines = 0或2)。我还建议在自定义单元类中添加一个公共实例方法。像这样:

function configureWithText(text: String) {
    articleTitleLabel.text = text
    // or, textLabel.text = text
}

此外,您可能需要为自定义单元格创建.xib文件,并为您的标签设置一些Top,Bottom,Left和Right约束。

希望它有所帮助!

相关问题