UIScreenEdgePanGestureRecognizer对Subview没有反应

时间:2014-05-13 09:15:04

标签: ios xamarin

我试图实现一个Slidemenu,它发生在主视图的左侧。通过在左侧添加UIScreenEdgePanGestureRecognizer,我可以执行幻灯片部分。这工作真的很棒,但现在我当然也应该能够将它滑出来。所以我认为我可以从主视图中做同样的事情但现在在幻灯片的右侧。但现在我遇到的问题是它根本没有反应。

SlideMenu是主视图中的subview,当它滑出时,它占据了屏幕的3/4。

FavoritenMenu = new SlideMenu("Left");
AddSubview(FavoritenMenu);

//SlideRecognizers
SideMenuSlideRecognizerLeft.Edges = UIRectEdge.Left;
SideMenuSlideRecognizerLeft.AddTarget(() => { HandleSlideLeft(); });
AddGestureRecognizer(SideMenuSlideRecognizerLeft);

在SlideMenu中声明SlideRecognizer:

SlideEdgeRecognizer.Edges = UIRectEdge.Right;

SlideEdgeRecognizer.AddTarget(() => { HandleSlide(); });
AddGestureRecognizer(SlideEdgeRecognizer);

我在方法HandleSlide()中放置了一个断点,以查看它何时进入,但实际上它从未进入。所以我用普通的GestureRecognizer替换了它,并且它进入了方法的意外。

有人知道这是一个错误还是错过了什么?谢谢你的回复。

1 个答案:

答案 0 :(得分:1)

您需要有两个手势识别器。您可以在FlyoutNavigation中看到我如何修复/实现它: https://github.com/Clancey/FlyoutNavigation/commit/3471c0d9ff7dfd86db460391fdd64c73da0bd512