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; } }