Autolayout自动布局cell导致tableView偏移

在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

你可能感兴趣的:(Autolayout自动布局cell导致tableView偏移)