gpt4 book ai didi

ios - 根据 UIlabel 行数扩展 tableviewcell

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:16 24 4
gpt4 key购买 nike

我有一个自定义 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
}

最佳答案

您可以结合 UILabel 的 numberOfLines 属性使用带有自动布局的 TableView 动态单元格大小调整来扩展和压缩单元格。

解决方案的核心是:

tableView.beginUpdates()
label.numberOfLines = label.numberOfLines == 0 ? 1 : 0
tableView.endUpdates()

这实际上是在表格上触发动画并将行数从 0(任意行数)切换为 1 行。剩下的由自动布局完成。

我认为这比手动更新高度指标要好。完整的示例项目可以在我的 github 上找到:https://github.com/rayfix/MultilineDemo

demonstration

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com