当前位置:  开发笔记 > IOS > 正文

基于UIlabel行计数扩展tableviewcell

如何解决《基于UIlabel行计数扩展tableviewcell》经验,为你挑选了1个好方法。

我有一个自定义UITableViewCell一个UILabel具有多个行.我正在尝试实现一个tap扩展/收缩功能,这样当标签只有一行时,点击单元格时不会发生扩展,但如果标签是多行,则单元格在敲击时能够扩展/收缩.我得到了扩展和合同工作,但我无法弄清楚如何使其工作基于的行数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
}  

Ray Fix.. 5

您可以将表格视图动态单元格大小与autolayout结合使用,并结合UILabel的numberOfLines属性来扩展和压缩单元格.

解决方案的核心是:

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

这实质上是触发表格上的动画并将行数从0(任意行数)切换到1行.Autolayout正在做其余的事情.

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

示范



1> Ray Fix..:

您可以将表格视图动态单元格大小与autolayout结合使用,并结合UILabel的numberOfLines属性来扩展和压缩单元格.

解决方案的核心是:

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

这实质上是触发表格上的动画并将行数从0(任意行数)切换到1行.Autolayout正在做其余的事情.

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

示范

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有