iOS tableView添加手势冲突解决办法

iOS tableView添加手势冲突解决办法,第1张

1、在tableView上添加手势,并设置手势代理为当前控制器

2、利用代理方法- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 允许tableView上响应多手势

3、利用代理方法- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer,控制添加的手势是否响应

通常在tableView上添加手势,会有冲突,比如在tableView上添加pan手势,就会让tableView的无法滚动,在tableViewCell上添加tap手势,就会让tableViewCell的didSelectCell方法无法响应等等,利用代理方法 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 虽然能让添加的手势和原来的事件都响应,但是会造成一次性响应多个事件,这时候就需要用代理方法gestureRecognizerShouldBegin:来控制,添加的手势是否需要响应,并且不会阻断事件传递,这样就能很好的解决冲突问题。

详细内容: 我是需要做一个像iphone上 qq空间主页面那个效果: 但是qq空间里好像是用整个一张uiscrollview实现的 但我想利用重用机制,在下面用一个scrollView,然后scrollView里加一个TableView 所以这里 就有一个 上下滑事件 重叠的问题 创建的时候,tableView.frame = (0, 200, 320, 460)并且tableView的上下滑动事件交给scrollView处理,用了tableView.scrollEnable = NO 当上滑scrollView.contentOffset.y >200的时候, tableView就要响应上下滑事件, 我做得也就是tableView.scrollEnable = YES然后你拖动tableView的时候,就直接是拖动下面的scrollView了 当下滑scrollView.contentOffset.y <200的时候, tableView就不能再响应上下滑事件, 我做得就是tableView.scrollEnable = NO 但是现在有个问题: 比如开始,在tableView上向上滑动,(因为tableView.scrollEnable = NO) 需求是,在contentOffset.y >200的时候,并且你还没松手,继续向上滑的时候,要把事件丢给tableView,让tableView去滑动了 但是这里就不行,非得等到这个事件结束,然后再滑动,才能实现 这是一个,还有一个是你松手,scrollView还在滑的时候,也是这个问题 具体点呢,是对上下滑事件 怎样的自定义? 如果是比较简单的,可以试试实现scrollView的代理方法 去 *** 作scrollView的滚动,对tableView的点击事件不影响 如果是非常精准的自定义,你可以让 设置scrollEnabled 为no,然后自己写一套方法来 设置contentOffSet,来完全自己 *** 控tableView的 滚动


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11599067.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存