两个TableView做同步选中行时,选中行高亮效果延迟的问题

Ephraim 2015-08-26 07:47:06
由于要实现表格横向滚动时第一列保持不动,所以这里用了两个TableView(第一列是一个单独的TableView,右边整个是一个TableView)。然后我通过在tableView: didSelectRowAtIndexPath: 方法里触发另一个表格的selectRowAtIndexPath 事件来实现选中行同步,但是这样的话同步表格的选中行的高亮效果会有延迟,动图中第四次点击可以看得比较明显。
小弟新学iOS不久,求教各位大神有什么好的解决方案!
...全文
719 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
A744789621 2017-03-23
  • 打赏
  • 举报
回复
楼主,我今天也遇到这个问题,现在我解决了,办法是在cell上添加长按手势,并设置时间为0.1秒,然后在手势状态添加视图到keywindow上,以下是我的代码,希望可以帮到你: - (void)longGsAct: (UILongPressGestureRecognizer *)sender { NSLog(@"cell长按手势"); // 转换坐标 CGRect newRect = [sender.view convertRect:sender.view.bounds toView:nil]; // view距离window左右两边各5,高度30 UIView *v = [[UIView alloc]initWithFrame:CGRectMake(5, newRect.origin.y, [[UIScreen mainScreen] bounds].size.width - 10, 30)]; v.backgroundColor = [UIColor colorWithRed:242.0/255 green:242.0/255 blue:242.0/255 alpha:0.5]; UIApplication *ap = [UIApplication sharedApplication]; v.tag = 25692569; // 添加view if (sender.state == UIGestureRecognizerStateBegan) { [ap.keyWindow addSubview:v]; } // 移除view if (sender.state == UIGestureRecognizerStateEnded) { [[ap.keyWindow viewWithTag:25692569] removeFromSuperview]; } }
superCOD 2016-09-18
  • 打赏
  • 举报
回复
右边tableview的背景可以改成透明,左边tableView大小改成屏幕这么大,选中的时候直接选中左边就行
qq_33911160 2016-09-12
  • 打赏
  • 举报
回复
tableview selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionTop
chengzongxin520 2016-07-21
  • 打赏
  • 举报
回复
请问下楼主,怎么做到点击右边的cell,左边也会高亮的效果,我现在一直没做到
胜负多少 2015-08-27
  • 打赏
  • 举报
回复
引用 5 楼 yejc007 的回复:
[quote=引用 3 楼 pppppp11 的回复:] 那你干嘛要用两个tableView?用同一个不就行了? 自定义个cell,主要分两个部分,左边是一个uilable,右边是一个scrollView不就行了?
试了下这个方案,这样的话每个cell里的横向滚动是独立的,怎么样实现滚动同步呢?而且在cell的右侧(scrollview)点击时,不会触发选中事件...[/quote] 那你两个tableView上下同时滚动是如何实现的。。。
Ephraim 2015-08-27
  • 打赏
  • 举报
回复
引用 3 楼 pppppp11 的回复:
那你干嘛要用两个tableView?用同一个不就行了? 自定义个cell,主要分两个部分,左边是一个uilable,右边是一个scrollView不就行了?
试了下这个方案,这样的话每个cell里的横向滚动是独立的,怎么样实现滚动同步呢?而且在cell的右侧(scrollview)点击时,不会触发选中事件...
Ephraim 2015-08-27
  • 打赏
  • 举报
回复
引用 3 楼 pppppp11 的回复:
那你干嘛要用两个tableView?用同一个不就行了? 自定义个cell,主要分两个部分,左边是一个uilable,右边是一个scrollView不就行了?
确实……我试试看这个方案,先谢过
胜负多少 2015-08-27
  • 打赏
  • 举报
回复
引用 2 楼 yejc007 的回复:
[quote=引用 1 楼 pppppp11 的回复:] 后面这个tableView横向滚动是怎么做的?
放到scrollview里了[/quote] 那你干嘛要用两个tableView?用同一个不就行了? 自定义个cell,主要分两个部分,左边是一个uilable,右边是一个scrollView不就行了?
Ephraim 2015-08-27
  • 打赏
  • 举报
回复
引用 1 楼 pppppp11 的回复:
后面这个tableView横向滚动是怎么做的?
放到scrollview里了
Ephraim 2015-08-27
  • 打赏
  • 举报
回复
引用 8 楼 pppppp11 的回复:
感觉你这样确实有点难搞啊。。。。点击的时候,同一行可以认为是一个view,然后滚动的时候右侧又是一个整体的view,这两个view冲突了呀。。。暂时想不出更好的办法,不好意思。。。
还是很感谢!
胜负多少 2015-08-27
  • 打赏
  • 举报
回复
后面这个tableView横向滚动是怎么做的?
胜负多少 2015-08-27
  • 打赏
  • 举报
回复
引用 7 楼 yejc007 的回复:
[quote=引用 6 楼 pppppp11 的回复:] 那你两个tableView上下同时滚动是如何实现的。。。
在scrollViewDidScroll 做的处理,但是对于cell 里的scrollview 就不懂该怎么处理了,包括怎么获取当前滚动的scrollview的cell 和让其他cell里的scrollview发生同样的位移。[/quote] 感觉你这样确实有点难搞啊。。。。点击的时候,同一行可以认为是一个view,然后滚动的时候右侧又是一个整体的view,这两个view冲突了呀。。。暂时想不出更好的办法,不好意思。。。
Ephraim 2015-08-27
  • 打赏
  • 举报
回复
引用 6 楼 pppppp11 的回复:
那你两个tableView上下同时滚动是如何实现的。。。
在scrollViewDidScroll 做的处理,但是对于cell 里的scrollview 就不懂该怎么处理了,包括怎么获取当前滚动的scrollview的cell 和让其他cell里的scrollview发生同样的位移。

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧