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

时间:2011-11-21 17:55:13

标签: ios xamarin.ios gestures uipageviewcontroller uipangesturerecognizer

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

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

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

如何在MonoTouch中执行此操作?

提前致谢。

1 个答案:

答案 0 :(得分: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;

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

int number_of_touches = pageController.GestureRecognizers [0].NumberOfTouches;

并使用此值进行相应操作。