判断tableViewCell是否在可视区
1、- (NSArray *)visibleCells;
UITableview 的方法,这个最直接,返回一个UITableviewcell的数组。
对于自定义的cell,之后的处理可能会稍微复杂。
2、-(NSArray*)indexPathsForVisibleRows;
UITableview的又一个方法,这个比较好用,返回一个indexPath的数组,可以直接indexpath.row去调用你的table_related_array里的数据了。比较方便用于自定制的cell.
3、-(CGRect)rectForRowAtIndexPath:(NSIndexPath*)indexPath;
//找出indexPath为index对应的cell在myTV这个tableView里的rect
CGRect cellR = [myTV rectForRowAtIndexPath:index];
如果myTV.contentOffset - cellR.origin.y < myCll.frame.size.height;
或者cellR.origin.y - myTV.contentOffset.y > myTV.size.height;
这个时候myCell应该不在myTV的可视区域了
这个方法可以用在代理回调较多的设计中。
、、
1、2在自动根据数据伸长的cell中好像不太准确、
删除UITableviewCell时,如何知道最后一个cell显示在了屏幕上面。如果一个屏幕10个cell,删除了两个。最后一个cell出现在了屏幕上,需要
自动加载更多数据。
如果cell大小固定。数据源数量 小于 屏幕高度除以cell高。这时可以继续加载。
如果cell大小根据内容自动变化。(cell高度动态变化)
//数据源数组
NSArray *dataArray = nil;
//获取最后一个cell对象
UITableViewCell *cell = self.tableView.visibleCells.lastObject;
//获取最后一个cell的indexPath
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
//获取指定(最后)一个cell的rect
CGRect rect = [self.tableView rectForRowAtIndexPath:indexPath];
CGFloat lastCellBottom = rect.origin.y = rect.size.height;
id lastModel = dataArray.lastObject;
id model = dataArray[indexPath.row];
//保证是最后一个cell
if(model == lastModel){
if(lastCellBottom < self.tableView.frame.size.height){
NSLog(@"加载数据");
}
}
转载于:https://www.cnblogs.com/wjw-blog/p/7810078.html
判断tableViewCell是否在可视区相关推荐
- 【web】仿微博浏览量自增(判断元素是否在可视区+停留2s事件响应)
浏览量自增 需求分析 微博.空间动态中经常能看到浏览量统计,不同于博客,点击之后浏览量自动加1,这种碎片化的推送信息,浏览次数不能以常规的点击方式来统计,用户可能甚至根本不会点击内容,匆匆一瞥就把滚动 ...
- 前端如何实现图片懒加载(lazyload) 提高用户体验
定义 图片懒加载又称图片延时加载.惰性加载,即在用户需要使用图片的时候加载,这样可以减少请求,节省带宽,提高页面加载速度,相对的,也能减少服务器压力. 惰性加载是程序人性化的一种体现,提高用户体验,防 ...
- 常用元素位置与大小总结
偏移量 offsetHeight: 元素在垂直方向占据的空间大小 => 内容高度 + 上下padding + 上下boder offsetWidth: 元素在水平方向占据的空间大小 => ...
- 深入理解浏览器解析和执行过程
在我们公司的业务场景中,有很大一部分用户是使用老款安卓机浏览页面,这些老款安卓机性能较差,如果优化不足,页面的卡顿现象会更加明显,此时页面性能优化的重要性就凸显出现.优化页面的性能,需要对浏览器的渲染 ...
- js两种滚动事件写法
方式一:可判断滚动条滚动方向. $(window).scroll(() => {// 滚动条距文档顶部的距离, || 是做兼容处理的let scrollTop = window.pageYOff ...
- 【前端优化】超详细!带你体验常用的前端优化手段
文章目录 前言 一.图片懒加载 原因 判断是否进入可视区 方案一: clientHeight.scrollTop 和 offsetTop 方案二:getBoundingClientRect 二.防抖与 ...
- img 的 alt 与 title 的异同,还有实现图片懒加载的原理
异同 alt是图片加载失败的时候,显示在网页上的替代文字:title是鼠标放在图片上显示的提示文字,title是对图片的描述与进一步说明. 这些都是表面上的区别,alt是img的必要属性,而title ...
- 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件
1.减少 HTTP 请求数量 在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信.浏览器与服务器需要经过三次握手,每次握手需要花费大量时间.而且不同浏览器对资源文件并发请求数量有限(不同浏览器 ...
- 图片优化瘦身 给网站提速
1. 为什么用 webp? 科技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%:谷歌的 Chrome 网上应用商店采用 WebP 格式 ...
最新文章
- html js不触发_图文详解鼠标事件CSS:hover和JS:mouseover的区别
- eclipse打包成jar_Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?
- 天猫整站SSM-分页-limit(做个人学习笔记整理用)
- mysql怎么跳出while循环_mysql while,loop,repeat循环,符合条件跳出循环
- C#通过序列化实现深表复制
- 如何改变WINDOWS服务的启动顺序(Win2000)
- 南昌大学计算机网络通信用什么书,南昌大学_计算机网络教材.doc
- 计算机主机显示接口,一文了解电脑视频接口 看完彻底明白了
- 重启计算机可以使用什么组合键,死机重启电脑快捷键有哪些
- 前后端分离的好处有哪些?
- 中国石油大学c语言程序设计答案,中国石油大学C语言程序设计第一册在线作业答案...
- 2018 Android 框架汇总(转)
- 一招教你如何提高分销平台分账效率
- 踱步狼注释移除状态机算法2019.10
- C#实现PDF转PNG图片
- 程序员的国庆大阅兵,太好好好好好好看了吧 ……
- 2022电大国家开放大学网上形考任务-公司财务非免费(非答案)
- 计算机毕业设计不会做?
- 关于分布式商城的项目讲解
- 同时解决Wifi共享精灵启动不了或者上不了网的方法?