iOS tableViewCell自动变高可能出现UI异常

1.tableViewCell自动变高

方案:很容易借助autolayout实现,只需要cell可以自身根据autolayout定出自身的高度即可。类似scrollView的ContentSize的定法。此处不多赘述。
Code:
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 100;// 此值为一个大概值,类似于占位值

2.tableViewCell自动变高后可能出现的UI问题

2.1在加载更多数据(特别是reloadData后)可能出现的点击状态栏不能正常返回顶部,会差一些距离

原因:不明。可能的是自身对于预估的行高缓存有问题导致。
解决方法:缓存cell的高度

@property (nonatomic, strong) NSMutableDictionary *heightAtIndexPath;//缓存高度所用字典

 -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSNumber *height = [self.heightAtIndexPath objectForKey:indexPath];
    if(height)
    {
        return height.floatValue;
    }
    else
    {
        return 100;
    }
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:    
  (NSIndexPath *)indexPath
{
    NSNumber *height = @(cell.frame.size.height);
    [self.heightAtIndexPath setObject:height forKey:indexPath];
}

参考://www.greatytc.com/p/64f0e1557562

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

推荐阅读更多精彩内容

  • 剖宫产妈妈,不同于自然生产,由于手术伤口较大,经历剖宫产的妈妈,在产后护理要注意的事项会很多。 手术后麻醉药的效果...
    高级健身教练Ailsa阅读 687评论 0 1
  • 冬日的清晨,冷风拂面。气温骤降至零下七度,连发动的车子都滋滋的发出提示音。听着熟悉的异响还是有些慌张,女人本...
    禅语禅心阅读 284评论 0 0
  • 天儿不错,去颐和园走了一大圈,到中午一点钟,早餐能量消耗殆尽,然后去金源足足实实的都给补回来。 今天觉得有点累,没练功。
    misang阅读 132评论 0 3