代码地址如下:
http://www.demodashi.com/demo/13307.html

一、tableView双级联动

以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tableView顶部的cell的indexPath。

方案一:获得当前可见的所有cell,然后取可见cell数组中的第一个cell就是目标cell,再根据cell获得indexPath。代码如下
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{if (scrollView == _rightTableView && _isSelected == NO) {//返回tableView可见的cell数组NSArray * array = [_rightTableView visibleCells];//返回cell的IndexPathNSIndexPath * indexPath = [_rightTableView indexPathForCell:array.firstObject];NSLog(@"滑到了第 %ld 组 %ld个",indexPath.section, indexPath.row);_currentIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section];[_leftTableView reloadData];[_leftTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:indexPath.section] atScrollPosition:UITableViewScrollPositionMiddle animated:NO];}}
方案二(推荐使用):利用偏移量!偏移量的值实际上可以代表当时处于tableView顶部的cell在tableView上的相对位置, 那么我们就可以根据偏移量获得处于顶部的cell的indexPath。代码如下
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{if (scrollView == _rightTableView && _isSelected == NO) {//系统方法返回处于tableView某坐标处的cell的indexPathNSIndexPath * indexPath = [_rightTableView indexPathForRowAtPoint:scrollView.contentOffset];NSLog(@"滑到了第 %ld 组 %ld个",indexPath.section, indexPath.row);_currentIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section];[_leftTableView reloadData];[_leftTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:indexPath.section] atScrollPosition:UITableViewScrollPositionMiddle animated:NO];}}

二、 获取处于UITableView中心的cell

获取处于tableView中间cell的效果,用上述方案一比较麻烦:要考虑可见cell 的奇、偶个数问题,还有cell是否等高的情况;方案二用起来就快捷方便多了,取的cell的位置的纵坐标相当于在偏移量的基础上又增加了tableView高度的一半。代码如下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{//获取处于UITableView中心的cell//系统方法返回处于tableView某坐标处的cell的indexPathNSIndexPath * middleIndexPath = [_rightTableView  indexPathForRowAtPoint:CGPointMake(0, scrollView.contentOffset.y + _rightTableView.frame.size.height/2)];NSLog(@"中间的cell:第 %ld 组 %ld个",middleIndexPath.section, middleIndexPath.row);}

三、项目结构

俺目前能想到的也就这了,各位同僚有什么好的想法欢迎在此留言交流������������

iOS UITableView获取特定位置的cell

代码地址如下:
http://www.demodashi.com/demo/13307.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

iOS UITableView获取特定位置的cell相关推荐

  1. iOS 系统方法获取当前位置经纬度

    1.首先要导入CoreLocation  这个框架 2.然后要用到这个类CLLocationManager @property(nonatomic,strong)CLLocationManager* ...

  2. html自动获取用户位置,html5获取用户当前位置

    支持地理定位的浏览器有IE9+.Firefox 3.5+ .Opera 10.6+ .Safari 5+ .Chrome.iOS 版Safari.Android版WebKit. navigator.g ...

  3. matlab中获取view,ios 怎么获取一个view的位置

    ios 怎么获取一个view的位置以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ios 怎么获取一个view的位置 打 ...

  4. 获取特定时间的时间戳,以及在使用时ios不生效问题

    1.获取特定的时间 let timea = new Date('2022/07/17 07:00').getTime() console.log('预定时间的时间戳', timea) 打印结果 : 预 ...

  5. iOS定位服务系列之一:获取当前位置信息

     最近的一个业务涉及地图相关的服务,由于时间比较紧,所以借鉴了网上一些大神的代码,总算是交了差.现在回想起来,当初的自己是多么的窘迫,上网查看,铺天盖地的博文,每篇都是华丽丽的几大页,功能也都能满 ...

  6. iOS UITableView的使用大全-备用

    首先.对UITableView进行讲解,下面有对它进行实际的应用 UITableView 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍存在于iPhone的应 ...

  7. IOS UITableView 加载未知宽高图片的解决方案

    在开发中遇到了UITableView列表 UITableViewCell装载图片但不知Image的宽高 问题. 在解决该问题的时候,首先想到的是异步加载图片 采用第三方框架SDWebImage 实现对 ...

  8. 地图篇-01.获取用户位置

    地图篇-01.获取用户位置 今天把地图整理了一下,共享出来和大家一起分享,希望帮助到不了解的朋友,当然很精通的朋友希望指正小生的不足. 1.说到地图,首先要接触一个framework -CoreLoc ...

  9. IOS中获取各个文件的目录路径的方法和NSFileManager类

    转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永 ...

最新文章

  1. 一种巧妙的drawable.xml替代方案
  2. iOS 动画总结----UIView动画
  3. 抢坐公司网盘首位,谁才是最大蛋糕受益者?
  4. 网页拉起QQ进行交谈
  5. .NET 靠开源再“出圈”!
  6. 隐秘攻击:恶意病毒可使智能手机加速老化
  7. poj 1251 Jungle Roads prim最小生成树基础
  8. 回文字符串,回文链表
  9. 六石管理学:学习指教欢迎,刺探情报免了
  10. 非线性系统的理论和方法,神经网络的非线性
  11. 关于office/word/excel/powerpoint/ppt弹出“配置进度”的解决办法
  12. x轴z轴代表的方向图片_x轴y轴z轴代表的方向_x轴y轴z轴代表的方向图
  13. nms网关服务器日常维护,ZXB10-NMS网管解决方案
  14. 阿里直播SDK,直播推流地址和播流地址生成
  15. X/Y/Z Modem、Kermit区别
  16. Everyday English(四)
  17. 数据库(oracle)服务器的cpu大于80%
  18. 计算机网络知识总结:ip地址、分类及什么样的ip主机地址可以分配给主机使用
  19. 身体指数bmi流程图_一说减肥就讲BMI,除了身体质量指数,还要关注这些身体数据...
  20. 用于彩票3D的一个组合算法

热门文章

  1. python print 变量_0、python 的 print()函数、变量和赋值
  2. 08.QT中sqlite3数据库基本操作
  3. java机考_【Java】(机考常用)类集
  4. NEC协议——红外遥控的使用
  5. gdb core 调试(ZZ)
  6. 深入理解ARM体系架构(S3C6410)---arm7,arm9,arm11区别
  7. linux 中级 教程pdf,Linux初中级学习者指导Linux操作系统技术合集.pdf
  8. 用Navicat连接mysql报错:2003-Can't connect to MySql server on '10.100.0.109'(10039)
  9. JDBC和servlet设计思路、DAO模式思路、MVC思路粗略总结
  10. bzoj 1227 [SDOI2009]虔诚的墓主人