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

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

作者: iOS_PM_WEB_尛鹏 | 来源:发表于2017-10-12 13:06 被阅读0次

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

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中好像不太准确。

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/xxbnyxtx.html