我有一个包含三个视图的视图控制器(self.panedview,self.view,self.sineview)当检测到向上滑动手势时,最高视图(self.panedview)向上移动 - 显示另外两个观点(self.view和self.sineview)。 self.sineview是一个UIView,它不断运行动画,呈现一个移动的正弦波并占据self.view的一半。我有一个向下滑动的手势识别器,当我向下滑动self.panedview时可以工作,但是当我向下滑动self.sineview时它不起作用。如果我在self.view上浏览self.sineview它似乎工作。当我隐藏self.sineview并直接向下滑动self.view或self.paned视图时,向下滑动即可。你认为动画正弦波会妨碍手势识别吗?
UISwipeGestureRecognizer * swipeDownRec = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleDownSwipe:)];
[self.panedView addGestureRecognizer:swipeDownRec];
[self.view addGestureRecognizer:swipeDownRec];
[self.sineview addGestureRecognizer:swipeDownRec];
此外,我尝试在这两行代码之间进行变换,但没有区别:
[self.view insertSubview:self.sineWave belowSubview:self.panedView];
[self.view insertSubview:self.sineWave aboveSubview:self.view];
我还尝试为每个视图添加单独的向下滑动手势识别器,但它仍然不起作用。
答案 0 :(得分:1)
问题在于启用self.sinewave动画时无法识别self.sinewave的滑动识别器。解决方案很简单:将UIViewAnimationOptionAllowUserInteraction
作为参数添加到options
的{{1}}处理程序