文档章节

自动计算tableView的高度

闲云悠鹤蝶恋舞
 闲云悠鹤蝶恋舞
发布于 2016/02/29 23:45
字数 470
阅读 388
收藏 5

tableView自动计算行高:(需要设置两个属性:rowHeight和estimatedRowHeight

   注意:

     执行这个方法时不会调用行高方法

   [tableView dequeueReusableCellWithIdentifier:()]

      执行这个方法时会调用行高方法

    [tableView dequeueReusableCellWithIdentifier:() forIndexPath:()]

  ——设置了预估行高

       执行顺序:行数>每个[cell > 行高](注:即返回每个cell>每个cell的行高)

  • 当前显示的行高方法会调用三次(每个版本的Xcode调用次数可能不同)

  ** 问题:预估行高如果不同,计算的次数不同!

  •   1.使用预估行高,计算出预估的contentSize

  •   2.根据预估行高,判断计算次数,顺序计算每一行的行高,更新contentSize

  •   3.如果预估行高过大,超出预估行高范围,顺序计算后续行高,一直到填满屏幕退出,同时更新contentSize

  •   4.使用预估行高,每个cell显示前需要计算,单个cell的效率是低的,从整体效率是高的 

  • 特别注意:预估行高不要太大,也不要太小,尽量靠近!!!

   ——没有设置预估行高

      执行顺序:行数 > 行高 > cell

  •     1.计算所有行的高度

  •     2.再计算显示行的高度

    ** 问题:为什么要调用所有行高的方法?UITableView继承自UIScrollView

                  表格视图滚动非常流畅>需要提前计算出contentSize

设置预估行高的两个属性:

特别注意:这两个属性都要设置才能达到效果

  self.tableView.rowHeight =UITableViewAutomaticDimension;  // 行高
  self.tableView.estimatedRowHeight = 20;  // 预估行高


© 著作权归作者所有

共有 人打赏支持
闲云悠鹤蝶恋舞
粉丝 1
博文 40
码字总数 1731
作品 0
朝阳
程序员
IOS 列表行高的自动计算 解决开发中痛点

UITableView一直是我们app中使用频率最高的控件。UITableViewCell的算高问题也一直是一个老生常谈的问题。我们一般算高都是将cell中得各个控件的高度计算出来,然后给外界抛出一个接口,用来...

人独立
2015/10/13
2.2K
0
iOS开发中行高灵活可变的UITableView的性能优化

iOS开发中行高灵活可变的UITableView的性能优化 一、UITableView的构建原理 在新闻类,电商类等应用中,应用着大量的图文混排视图,在表视图UITableView中,开发者通常需要在如下代理方法中计...

珲少
2016/08/27
1K
6
tableview content size 计算错误

一.Tableview contentsize计算错误 上拉.一直拉到加载第二页. 然后再下拉. 发现tableview的contentsize还在继续增加. 如图. [图片上传失败...(image-35ae58-1510842738033)]=400x400) 二.解决...

Sunxxxxx丶
2017/11/16
0
0
使用自动布局的cell自适应高度和简单的性能优化

在iOS的开发过程中,UITableView的使用频次是非常高的,用来加载具有一定规则的的cell来呈现更多的展示内容.而根据规则的不同我们也要对cell做出相应的改变--自定义cell.使用自定义cell就不得不...

丁勒个东
2016/05/10
0
0
iOS11 UITableView reloadData 界面跳动问题

在 iOS11.的系统上当 UITableView 设置高度固定 rowHeight = xxx; 时,如果tableView滚动到最底部,此时如果刷新tableView会出现tableView向上方跳动一段距离的现象 。 既然只是在iOS 11系统...

zh_iOS
09/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180925 df与du命令、fdisk磁盘分区

df 命令 disk filesystem的缩写,查看已挂载磁盘的总容量、使用容量、剩余容量信息。 [root@centos01 ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda3 27...

野雪球
35分钟前
1
0
Shell编程(expect同步文件、指定host和同步文件、构建文件分发系统、批量执行命令)

expect脚本同步文件 需求:自动同步文件 实验准备: A机器:192.168.248.130 B机器:192.168.248.129 实现: 1.A机器编写4.expect脚本文件,内容如下所示: #!/usr/bin/expectset passwd "...

蛋黄_Yolks
今天
2
0
ppwjs之bootstrap颜色:背景颜色

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
今天
1
0
Ubuntu与 Fedora之对比

大家好。今天我将重点介绍两个流行的Linux发行版之间的一些特性和差异; Ubuntu 18.04和Fedora 28。它们都有自己的包管理; Ubuntu使用DEB,而Fedora使用RPM,但它们都具有相同的桌面环境(GNO...

linuxprobe16
今天
2
0
线性代数入门

线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的,借此,我们就能够更好的做出决策。所以,如果你真的希望了...

牛奋Debug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部