使用行高而非自动布局高度的表视图单元格高度

时间:2014-11-28 13:36:16

标签: ios objective-c uitableview autolayout

我在UITableView中有3个自定义表格查看单元格。我有一个单元格的高度完美,但其他两个单元格我只是希望它们使用AutoLayout作为高度

这就是我所拥有的,有没有人对else声明有另一个想法?:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    id model = self.Model[indexPath.row];

    if ([model isKindOfClass:[D self]]) {
        ListTableViewCell *cellOne = [tableView dequeueReusableCellWithIdentifier:@"1Cell" forIndexPath:indexPath];
        if (!cellOne) {
            cellOne = [[ListTableViewCell alloc] init];

            FR *fD = (FR *)model;
            NSString *title = [NSString stringWithFormat:@"%@", fD.title];
            NSString *dateString = [self timeSincePublished:fD.pubDate];
            NSString *description = [self removeHTMLTags:fD.description];
            NSString *link = [NSString stringWithFormat:@"%@", fD.link];

            cellOne.labelHeadline.text = title;
            cellOne.labelDescription.text = description;
            cellOne.labelPublished.text = dateString;
        }

        // Make sure the cell's frame is updated
        [cellOne setNeedsLayout];
        [cellOne layoutIfNeeded];

        CGFloat heightOne = [cellOne.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
        return heightOne + 2;

    } else {

    // This is where I need help for other 2 custom cells to just use AutoLayout height
    return tableView.rowHeight;

}

现在,return tableView.rowHeight将返回故事板中设置的硬编码高度,无论单元格中实际存在多少。

enter image description here

应该忽略该高度,只使用AutoLayout。

你知道这样做的方法吗?谢谢!如果需要,很乐意发布任何额外信息 -

1 个答案:

答案 0 :(得分:1)

使用自动布局时,您不能使用heightForRowAtIndexPath

相反,你可以使用这样的东西:

self.tableView.estimatedRowHeight = 44.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;