我有一个带有多行 UITableViewCell
的自定义 UILabel
。我正在尝试实现点击扩展/收缩功能,以便当标签只有一行时,点击单元格时不会发生扩展,但如果标签是多行,则单元格在点击时能够扩展/收缩。我进行了扩展和收缩工作,但我无法根据 UILabel
中的行数弄清楚如何使其工作。
这是我目前正在为单元格扩展所做的事情,但它根本不基于 UILabel
。
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if (indexPath.row == self.selectedRow?.row && self.expand == true)
{
self.previousRow = self.selectedRow?.row
return 200
}
else if(self.previousRow == self.selectedRow?.row && self.expand == false){
return 65
}
return 65
}
最佳答案
您可以将表格 View 动态单元格大小与自动布局结合使用 UILabel 的 numberOfLines 属性来扩展和压缩单元格。
解决方案的核心是:
tableView.beginUpdates()
label.numberOfLines = label.numberOfLines == 0 ? 1 : 0
tableView.endUpdates()
这实质上是触发表格上的动画并将行数从 0(任意行数)切换到 1 行。 Autolayout 正在做剩下的工作。
我认为这比手动更新高度指标要好。完整的示例项目可以在我的 github 上找到:https://github.com/rayfix/MultilineDemo
关于ios - 基于UIlabel行数扩展tableviewcell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34273159/