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:来控制,添加的手势是否需要响应,并且不会阻断事件传递,这样就能很好的解决冲突问题。

1、确认你的子视图不是UIImageview(其中任何一层视图是UIImageview都需要设置),如果是,则请先设置imageview.userInteractive = YES

2、设置父视图背景色为某种颜色,如绿色,然后查看你的子视图view是否在父视图的frame之内。如果超出frame范围,也会导致不响应。


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

原文地址: http://outofmemory.cn/bake/11615573.html

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

发表评论

登录后才能评论

评论列表(0条)

保存