码迷,mamicode.com
首页 > 移动开发 > 详细

iOS tableView高度缓存

时间:2018-08-20 11:40:01      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:dict   turn   rect   mat   led   缓存   计算   Dimension   不必要   

tableView计算完高度后,把高度缓存起来,避免下次重复计算,以减少不必要的消耗

// declare cellHeightsDictionary
NSMutableDictionary *cellHeightsDictionary;
 
// initialize in code (thanks to @Gerharbo)
cellHeightsDictionary = @{}.mutableCopy;
 
// declare table dynamic row height and create correct constraints in cells
tableView.rowHeight = UITableViewAutomaticDimension;
 
// save height
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    [cellHeightsDictionary setObject:@(cell.frame.size.height) forKey:indexPath];
}
 
// give exact height value
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSNumber *height = [cellHeightsDictionary objectForKey:indexPath];
    if (height) return height.doubleValue;
    return UITableViewAutomaticDimension;
}

iOS tableView高度缓存

标签:dict   turn   rect   mat   led   缓存   计算   Dimension   不必要   

原文地址:https://www.cnblogs.com/qqcc1388/p/9504295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!