在iOS8下,使用Autolayout自动布局cell,在点击cell push的过去,pop回来的时候,发现tableView偏移,iOS9下正常,可以建立一个tableView的类别来缓存cell的高度,然后在返回cell高度时,返回缓存的高度,这样就正常了
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
PushFixTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
cell.rowNumberLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row+1];
if (![tableView ky_isEstimatedRowHeightInCache:indexPath]) {
CGSize cellSize = [cell systemLayoutSizeFittingSize:CGSizeMake(self.view.frame.size.width, 0) withHorizontalFittingPriority:1000.0 verticalFittingPriority:50.0];
[tableView ky_putEstimatedCellHeightToCache:indexPath height:cellSize.height];
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{
return [tableView ky_getEstimatedCellHeightFromCache:indexPath defaultHeight:100];
}
GitHub:iOS8PushFix