ios-tableView的行高计算

来源:互联网 发布:怎么看淘宝店铺地址 编辑:程序博客网 时间:2024/05/23 01:23
如果我们设置了预估的行高也就是
tableView.estimatedRowHeight = 200

以及实现了计算行高的方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{    NSLog(@"%d",indexPath.row);    return 200;    }

这样的话,当前显示的行高会被调用2次的


如果我们没有设置预估的行高,就会把多个cell的行高算三遍。然后再算进入屏幕范围的Cell的高度,就比如说我们屏幕显示有四个cell

当第5个cell从屏幕外面出现的时候会去调用获取行高的方法。

为什么要调用这么多次的计算行高的方法那是因为UITableView继承自UIScrollView,所以需要去计算个contentSize

我们都知道如果scrollView没有contentSize是滚动不了的,所以没有预估行高的话就会多去调用计算行高的方法

如果我们设置了预估行高,如果设置的预估行高不同,计算几个cell的行高的数量也就不同。

我们设置了预估行高,就会使用预估的行高去计算出预估的contentSize。

计算行高的次数就会根据我们设定的预估行高的值来决定。

如果我们设置的预估行高比较小的话,那就会算的次数多一点,会顺序的去计算,然后再去更新contentSize。

就比如说我们这里设置预估行高为10,计算行高的方法就去调用了60多次

 self.tableView.estimatedRowHeight=10;
如果预估的行高比较大的话,就会去计算当前显示cell的行高方法

如果我们使用预估行高,每个cell显示之前要去计算,相对于单个Cell来说效率比较低,但是如果有多个Cell的话效率是高的。

因为如果我们没有使用预估行高的话,会一下子算出很多来,这样的话我们就需要等待的时候比较长,而且用户也不一定会去点到那么多行。

设置了预估行高的话,行高,cell 和计算行数的执行顺序分别是 行数 -> Cell ->行高

如果没有设置预估行高的话,就是行数 -> 行高 ->cell

如果行高是固定值,我们就不要去实现行高的代理方法,因为行高的代理方法会被调用很多次,而行高如果是固定的,就没有必要去调用很多次,这样会影响性能

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 锻炼后头晕想吐怎么办 高三学生睡眠不好怎么办 狗狗精力太旺盛怎么办 新入职的同事比你厉害怎么办 银子弹鞋开胶了怎么办 我很笨脑子反应慢怎么办 学车脑子不好使怎么办 生完二胎脑子不好使怎么办 羽毛球鞋买小了怎么办 羽毛球鞋买大了怎么办 感觉自己脑子越来越笨了怎么办? 生完孩子后身体素质差怎么办 胃口太好越来越胖怎么办 心情一紧张心跳手抖怎么办 消防兵新兵连俯卧撑不够怎么办 cf枪王永久禁赛怎么办 换了手机号花呗怎么办 xp系统无限重启怎么办 魔域配置资源读取错误怎么办 魔域异地交易了怎么办 魔域手游宝宝亲密度不够怎么办 魔域手游怎么改密码忘了怎么办 魔域装备注灵怎么办 lol外服账号忘记了怎么办 美服lol下载慢怎么办 台服天堂2延迟怎么办 梦幻专用瑞兽没有泰山怎么办 冲错了游戏点券怎么办 新手玩联盟很菜怎么办 cf玩一会儿卡退怎么办 魔域先锋区封号了怎么办 吃了减肥药头疼怎么办 冬天没用完的霜怎么办 手表带起来大了怎么办 碰到舞警打人该怎么办 合租者偷了东西却没有证据怎么办 钥匙锁在房间了怎么办 家里门钥匙丢了怎么办 合租朝北晒衣服怎么办 卧室门钥匙丢了怎么办 邻居在我家防盗窗上凉被子怎么办