我有一个带有多行 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-LMLPHP

关于ios - 基于UIlabel行数扩展tableviewcell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34273159/

10-14 20:25
查看更多