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是否在可视区相关推荐

  1. 【web】仿微博浏览量自增(判断元素是否在可视区+停留2s事件响应)

    浏览量自增 需求分析 微博.空间动态中经常能看到浏览量统计,不同于博客,点击之后浏览量自动加1,这种碎片化的推送信息,浏览次数不能以常规的点击方式来统计,用户可能甚至根本不会点击内容,匆匆一瞥就把滚动 ...

  2. 前端如何实现图片懒加载(lazyload) 提高用户体验

    定义 图片懒加载又称图片延时加载.惰性加载,即在用户需要使用图片的时候加载,这样可以减少请求,节省带宽,提高页面加载速度,相对的,也能减少服务器压力. 惰性加载是程序人性化的一种体现,提高用户体验,防 ...

  3. 常用元素位置与大小总结

    偏移量 offsetHeight: 元素在垂直方向占据的空间大小 => 内容高度 + 上下padding + 上下boder offsetWidth: 元素在水平方向占据的空间大小 => ...

  4. 深入理解浏览器解析和执行过程

    在我们公司的业务场景中,有很大一部分用户是使用老款安卓机浏览页面,这些老款安卓机性能较差,如果优化不足,页面的卡顿现象会更加明显,此时页面性能优化的重要性就凸显出现.优化页面的性能,需要对浏览器的渲染 ...

  5. js两种滚动事件写法

    方式一:可判断滚动条滚动方向. $(window).scroll(() => {// 滚动条距文档顶部的距离, || 是做兼容处理的let scrollTop = window.pageYOff ...

  6. 【前端优化】超详细!带你体验常用的前端优化手段

    文章目录 前言 一.图片懒加载 原因 判断是否进入可视区 方案一: clientHeight.scrollTop 和 offsetTop 方案二:getBoundingClientRect 二.防抖与 ...

  7. img 的 alt 与 title 的异同,还有实现图片懒加载的原理

    异同 alt是图片加载失败的时候,显示在网页上的替代文字:title是鼠标放在图片上显示的提示文字,title是对图片的描述与进一步说明. 这些都是表面上的区别,alt是img的必要属性,而title ...

  8. 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件

    1.减少 HTTP 请求数量 在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信.浏览器与服务器需要经过三次握手,每次握手需要花费大量时间.而且不同浏览器对资源文件并发请求数量有限(不同浏览器 ...

  9. 图片优化瘦身 给网站提速

    1. 为什么用 webp? 科技博客 Gig‍‍‍aOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%:谷歌的 Chrome 网上应用商店采用 WebP 格式 ...

最新文章

  1. 如何避开项目管理陷阱?
  2. linux elf格式文件详细分析
  3. 2018年跨行学习mysql_2018年,让你的数据库变更快的十个建议
  4. MATLAB从入门到精通-控制系统动态特性的计算以及阶跃响应波德图等
  5. python for循环语句的用法
  6. FetchAI Case Study
  7. Unity3D For Android 开发教程【转http://game.ceeger.com/Unity/Doc/2011/Unity3D_For_Android.html】...
  8. 深度|二代征信:人行数字解读分与征信复议
  9. 使用Mediaplay类写一个播放器
  10. 硬盘镜像和软盘镜像中内容的查看方法
  11. 计算机网络医院拓扑图方案设计,【方案】某医院计算机网络综合布线系统设计...
  12. linux 网络通信框架,Linux下 C++ HPSocket通信框架的简单使用
  13. NLP常见语言模型总结
  14. 数据库kettle,datax,DBMigration,RazorSQL几款迁移工具使用感受(以及如何迁移表的结构如主键,索引,约束等)
  15. java graphics2d旋转_反转Java Graphics2D缩放和旋转坐标
  16. 市场调研及发展前景分析报告有什么作用
  17. 求任意两圆相交的面积(不限程序设计语言版本)
  18. PyTorch DDP
  19. 想转SAP FICO顾问的必看(转)
  20. Android_001_校园APP_001_底部导航栏_Fragment_0

热门文章

  1. 九宫重拍(bfs + 康拓展开)
  2. Tushare金融大数据入门
  3. excel如何画删除线
  4. 蜀门锻造系统c语言原理,《蜀门》教你如何锻造装备
  5. 深入理解AlexNet网络
  6. linux判断参数是否存在,检查bash shell脚本中是否存在输入参数
  7. 广联达bim5d手机端_广联达BIM5D手机端操作说明-周跟踪
  8. 毕竟西湖六月中,风光不与四时同。接天莲叶无穷碧,映日荷花别样红
  9. CDH大数据平台 ModuleNotFoundError: No module named ‘_sqlite3‘
  10. 【健康生活,从BMI开始——Melendez的Android版本BMI计算器开源了】