文档章节

自动计算tableView的高度

闲云悠鹤蝶恋舞
 闲云悠鹤蝶恋舞
发布于 2016/02/29 23:45
字数 470
阅读 381
收藏 5
点赞 2
评论 0

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 ⋅ 0

iOS开发中行高灵活可变的UITableView的性能优化

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

珲少 ⋅ 2016/08/27 ⋅ 6

IOS8 不用计算Cell高度的TableView实现方案

这个新特性,意味着View被Autolayout调整frame后,会自动拉伸和收缩SupView。 具体到Cell,要求cell.contentView的四条边都与内部元素有约束关系。 在TableViewController里 - (void)viewDidL...

泊竹 ⋅ 2014/09/27 ⋅ 2

使用自动布局的cell自适应高度和简单的性能优化

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

丁勒个东 ⋅ 2016/05/10 ⋅ 0

tableview content size 计算错误

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

Sunxxxxx丶 ⋅ 2017/11/16 ⋅ 0

Autolayout小结(二)

Autolayout小结(二) 在Autolayout小结(一)中介绍了在Autolayout学习中一些基本的注意点,本文会针对一些布局上常见的问题进行分析。 如何自动适应cell的高度 如何在ScrollView中使用Autol...

法斗斗 ⋅ 2015/10/14 ⋅ 0

使用Autolayout实现UITableView的Cell动态布局和高度动态改变

本文翻译自:stackoverflow 有人在stackoverflow上问了一个问题: 如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的? 这个问题得到了3...

hejunbinlan ⋅ 2015/06/24 ⋅ 0

使用Autolayout实现UITableView的Cell动态布局和高度动态改变

使用Autolayout实现UITableView的Cell动态布局和高度动态改变 如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的? 这个问题得到了3...

法斗斗 ⋅ 2015/10/14 ⋅ 0

IOS --tableView包含多个header

我本来是做后台的,今天看到了一张UI,自己又懂一部分IOS,想着怎么实现这张UI。 先贴上UI 我的思路: 1.整体是一个scrollView(垂直方向),高度不固定 2.每一个模块是一个tableView,tableVi...

求是科技 ⋅ 2016/02/15 ⋅ 4

UITableView自动计算cell高度并缓存(Xib)

这篇文章我们来讲一下UITableView的cell自适应高度,以及遇到的问题的解决办法。在看文章之前希望你已经会UITableView的基本使用了。 先奉上这篇文章的demo的Github地址:UITableViewCellHe...

秦无炎 ⋅ 2016/11/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 21分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 33分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 今天 ⋅ 9

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 今天 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部