iOS 开发_如何判断Cell显示在当前屏幕上(可视区域上)

【作者前言】:分享些本人工作中遇到的点点滴滴那些事儿,刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

1.应用场景:

很多场合,我们需要判断滑动UITableView时,屏幕上对应显示的是哪个Cell,来做一些特殊的处理。

2.实现目标:

实现对可视Cell的单一处理

3.代码说明:

1.  - (NSArray*)visibleCells;
//UITableView的方法,这个最直接,返回一个UITableviewcell的数组。
对于自定制的cell,之后的处理可能稍微繁琐些。
2.- (NSArray*)indexPathsForVisibleRows;
//UITableview的又一个方法,这个比较好用了,返回一个NSIndexPath的数组,可以直接用indexpath.row去调你的table_related_Array里的数据了。比较方便用于自定制的cell。
3.- (CGRect)rectForRowAtIndexPath:(NSIndexPath*)indexPath;
CGRect cellR = [myTV rectForRowAtIndexPath:indx];
if (myTV.contentOffset.y - cellR.origin.y < myCell.frame.size.height || cellR.origin.y - myTV.contentOffset.y >myTV.size.height) {
//这个时候myCell应该是不在myTV的可视区域了。
} else {//myCell在可视区域时,业务处理
}
//这个方法可以用在代理回调较多的设计中。

Tip: 1和2在自动根据数据伸长的cell中好像不太准确。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,941评论 25 709
  • 静之wang阅读 832评论 0 1
  • 今天在wikipedia上梳理一下RBF函数,认识如下: RBF是满足某些特性的一类函数,而并非一种函数。先来谈谈...
    Dorts阅读 4,206评论 0 0
  • 先玩起。。。 以下初级问题的解决: docker -d INFO[0000] +job serveapi(unix...
    暖夏未眠丶阅读 1,150评论 0 0
  • 1.素材1 弟弟挑衣服,棉袄配短裤,哈哈大笑,有眼光,哥哥穿衣服,说不伦不类 2.弟弟幼儿园画了线条,妈妈夸...
    张玲芳阅读 1,670评论 0 0