我有一个表格,并且单元格有一个标签,我希望能够直接更新标签而无需重新加载表格或单元格。我找到了一种方法来做到这一点并且有效:
let cell = self.tableView.cellForRowAtIndexPath(NSIndexPath(forRow: index, inSection: 0)) as! cellClass
cell.textLabel.text = newText as? String
唯一的问题是标签的大小没有变化。如果重新加载表,标签会更改大小以适应文本量。我尝试使用layoutIfNeeded()和sizeToFit(),但标签不会扩展到第二行。宽度不是很大,它主要是它不会包裹,所以换句话说,高度不会延伸到更多的线。
答案 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约束。
希望它有所帮助!