不使用AutoLayout的UITableView动态行高

时间:2015-12-08 08:10:06

标签: uitableview ios7

我支持iOS 7,我没有使用autolayout。有没有办法让细胞标签以这种方式动态高度?

由于

编辑:

以下是我用来在iOS 7中定义动态高度的代码,似乎我可以使用自动布局,但它会切断底部的最后一个单元格,这很奇怪。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    var cell = offScreenCells.objectForKey("gcc") as? GalleryCommentCell
    if cell == nil {
        cell = commentsTable.dequeueReusableCellWithIdentifier("GalleryCommentCustomCell") as? GalleryCommentCell
        offScreenCells.setObject(cell!, forKey: "gcc")
    }

    let comment :GalleryCommentInfo = commentResults[indexPath.row]

    setCellCommentInfo(cell!, data: comment)

    cell!.bounds = CGRectMake(0, 0, CGRectGetWidth(commentsTable.bounds), CGRectGetHeight(cell!.bounds))

    cell!.setNeedsLayout()
    cell!.layoutIfNeeded()

    let height = cell!.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
    return height + 1
}

func setCellCommentInfo(cell :GalleryCommentCell, data :GalleryCommentInfo) { 
    cell.commentDate.text = data.galleryCommentDate

    cell.comment.text = data.galleryComment
}

1 个答案:

答案 0 :(得分:-1)

在您的自定义单元格实现方法中:

+ (CGFloat)heightForContactName:(NSString *)name
{
    CGFloat height = 0.0f;
    if (name) {
        CGFloat heightForText;
        // Calculate text height with `textBoundingRect`...
        height += heightForText; 
    }
    return height;
}