我有一个场景,我在主UIView中有两个UITableViews作为子视图:
UIView(帧=全屏)
+ --- UITableView(帧=屏幕的〜1/3)
+ --- UITableView(帧=屏幕的第二~1 / 3)
我想在整个屏幕区域上检测到三根手指向上滑动(并且还允许用户使用至少一根手指上下平移UITableViews)。
我有一个UISwipeGestureRecognizer附加到UIView numberOfTouchesRequired = 3
。
我试过这些:
maximumNumberOfTouches
设置为1。根据我的理解,这应该可以防止UITableViews上有两个和三个手指平底锅,但事实并非如此。 (如果我在这些UIPanGestureRecognizers上将enabled
设置为NO,则触摸会正确传递给superview。但是平移/滚动不起作用。)panGestureRecognizer requireGestureRecognizerToFail:
调用UISwipeGestureRecognizer
。这部分工作,但平移等待直到刷卡没有完成,感觉非常笨拙。shouldRecognizeSimultaneouslyWithGestureRecognizer:
覆盖UITableView以返回YES,这允许我检测三指滑动。但是,UITableViews无意中向下/向上滚动。那么如何将平移触摸次数限制为1(或2)并让三指UISwipeGestureRecognizer识别三次手指滑动?
答案 0 :(得分:0)
尝试覆盖顶部的canPreventGestureRecognizer:
(整个屏幕) UIPanGestureRecognizer ,为两个表格视图手势识别器中的每一个返回NO
。
我还尝试在两个表格视图手势识别器中的每一个上覆盖canBePreventedByGestureRecognizer:
,以便在最顶层 UIPanGestureRecognizer 的情况下返回NO
。
我很久以前就遇到过与你类似的情况,并且不记得我是如何解决它的(项目早已不复存在),但我似乎记得玩弄上述方法和最终让它发挥作用。