UITableView ReloadData时列表会向上或者向下移动的解决办法。

有一种会导致这种情况发生的原因是UITableView里面有多种cell且cell高度不同的时候,使用自适应高度,每次刷新时会重新计算高度,导致cell的跳动。

这时使用

 

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {

 }

 

在里面写每种cell的预估高度,例如

 

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    DynamicModel *model = [_dataSourceArray objectAtIndex:indexPath.section];
    if (indexPath.row == 0) {
        return 200;
    } else if (indexPath.row == 1) {
        if (model.likes.count) {
            return 60;
        } else {
            return 0;
        }
    } else if (indexPath.row == 2) {
        if (model.total_order.integerValue) {
            return 30;
        } else {
            return 0;
        }
    } else {
        return 30;
    }
}

 

posted @ 2017-04-24 15:08  YouNeedCourage  阅读(1728)  评论(0编辑  收藏  举报