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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,273评论 4 61
  • 格书1:你在思考某件事情的时候,不会创建心理表征;只有通过去做某件事情,失败了之后调整方法,接着再去做,如此循环往...
    淡泊人生的智慧阅读 1,267评论 0 0
  • 春许晨花引薄露 夏邀晚雀醉台亭 霜溯澜波三秋去 柳滨湖桥两冬迎 枕书扶盏学孜久 文端笔秀意恒铭 襄樊云雁今抟翼 息...
    柒浅牧言阅读 1,436评论 0 0
  • 2017/7/10 87/100 一早要去乘地铁上课,背个大包装了满满,大热天背个大包我有些发愁,老马同学提议...
    Ivyf阅读 1,605评论 0 1