我试图实现一个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
替换了它,并且它进入了方法的意外。
有人知道这是一个错误还是错过了什么?谢谢你的回复。
答案 0 :(得分:1)
您需要有两个手势识别器。您可以在FlyoutNavigation中看到我如何修复/实现它: https://github.com/Clancey/FlyoutNavigation/commit/3471c0d9ff7dfd86db460391fdd64c73da0bd512