具有PageCurl转换的UIPageViewController非常适合模拟页面,但默认的GestureRecognizer(UIPanGestureRecognizer)仅响应一个手指事件。我想在其他事件之上添加一个双指事件。
如何将另一个PanGestureRecognizer添加到当前的UIPageViewController实例中?这个新的PanGestureRecognizer应该等待两个手指平移触摸,而不会禁用原始的UIPanGestureRecognizer。
如果用户用两个手指而不是一个手指滚动页面,我需要的是一种提升额外自定义事件的方法,但它仍然应该像调用一个手指事件一样滚动页面。
如何在MonoTouch中执行此操作?
提前致谢。
答案 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;
并使用此值进行相应操作。