如何根据该单元格中的Label获得重用单元格的适当高度?

时间:2015-08-06 02:56:09

标签: ios swift

enter image description here

这是我的布局。标签在ContentView顶部的顶部是58pt。标签的numberOfLine是0.因此它可以自动输入。

我想要每个单元格的高度是58.0 + 10.0 +标签的高度。

我试过这段代码。

TV.estimatedRowHeight = 68 TV.rowHeight = UITableViewAutomaticDimension

但没效果。

然后尝试了这段代码。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    let cell = tableView.cellForRowAtIndexPath(indexPath) as! CommentDetailCell
    return 68.0 + cell.Comment.frame.size.height
}

再没有用了。

然后尝试这个!创建一个数组来存储每个单元格的labelHeight的高度。

var CommentHeightA:[CGFloat] = [60.0,60.0,60.0,60.0]

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    let cell:CommentDetailCell = tableView.dequeueReusableCellWithIdentifier("cell") as! CommentDetailCell
    cell.UserImg.image = UIImage(named: UserImgA[indexPath.row])
    cell.AtNum.text = AtNumA[indexPath.row]
    cell.LikeNum.text = LikeNumA[indexPath.row]
    cell.isLike.image = UIImage(named: isLikeA[indexPath.row])
    cell.Comment.text = CommentA[indexPath.row]
    CommentHeightA[indexPath.row] = cell.Comment.frame.size.height
    return cell
}

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 68.0 + CommentHeightA[indexPath.row]
}

并且:(以上所有方式都失败了。

那么我怎样才能得到我想要的东西呢?

更新

enter image description here

我添加了底部约束并使用了第一种方式。

这是结果。只有第一行有适当的高度。

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要在评论标签中向内容视图添加底部约束。然后添加以下代码:

TV.estimatedRowHeight = 68
TV.rowHeight = UITableViewAutomaticDimension

它会起作用,