MonoTouch:如何在UIPageViewController中添加双指手势识别器?

Ema*_*tta 3 gestures xamarin.ios ios uipangesturerecognizer uipageviewcontroller

具有PageCurl转换的UIPageViewController非常适合模拟页面,但默认的GestureRecognizer(UIPanGestureRecognizer)仅响应一个手指事件.我想在其他事件之上添加两个手指事件.

如何将另一个PanGestureRecognizer添加到当前的UIPageViewController实例?这个新的PanGestureRecognizer应该等待两个手指平移触摸,而不会禁用原始的UIPanGestureRecognizer.

如果用户用两个手指而不是一个手指滚动页面,我需要的是一种提升额外自定义事件的方法,但它仍然应该像调用一个手指事件一样滚动页面.

我怎么能在MonoTouch中做到这一点?

提前致谢.

Ema*_*tta 10

我自己解决了这个问题.UIPageViewController包含一组手势识别器.第一个是我们需要获取的,将其"MaximumNumberOfTouches"属性从1更改为2.以下是代码:

UIPageViewController pageController = new UIPageViewController (UIPageViewControllerTransitionStyle.PageCurl, UIPageViewControllerNavigationOrientation.Horizontal, UIPageViewControllerSpineLocation.Min);

UIPanGestureRecognizer pan_gesture_recognizer = (UIPanGestureRecognizer) pageController.GestureRecognizers[0];

pan_gesture_recognizer.MaximumNumberOfTouches = 2;
Run Code Online (Sandbox Code Playgroud)

然后,在处理页面翻转事件的代码中(在我的例子中是继承"UIPageViewControllerDataSource"的自定义类),您可以访问当前的触摸次数:

int number_of_touches = pageController.GestureRecognizers [0].NumberOfTouches;
Run Code Online (Sandbox Code Playgroud)

并使用此值进行相应的操作.