表格视图高度在点击或弹回时更改

时间:2014-11-22 23:56:41

标签: ios uitableview autolayout autosize

我有一个表视图,可以加载3个自定义单元格。 1个自定义单元格中包含ImageView,它似乎是表格视图在轻敲任何单元格时移动的罪魁祸首

这是我尝试过的,但它没有奏效。

如果我使用静态值(即return 180),它可以正常工作,但除了表视图跳转之外的任何其他内容。

任何人都知道为什么?谢谢!

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

    if ([model isKindOfClass:[FR 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 if ([model isKindOfClass:[D self]]) {

    // more code
}

1 个答案:

答案 0 :(得分:1)

据我所知,这是一个错误。在点击单元格后避免表跳转的解决方法是添加:

[self.tableview reloadData];
在表viewWillDisappear中

https://devforums.apple.com/message/1050163#1050163

https://devforums.apple.com/message/1042398#1042398