【问题标题】:MonoTouch: How to add a two finger gesture recognizer to UIPageViewController?MonoTouch:如何向 UIPageViewController 添加两个手指手势识别器?
【发布时间】:2012-01-03 05:05:45
【问题描述】:

带有 PageCurl 过渡的 UIPageViewController 非常适合模拟页面,但默认的 GestureRecognizer (UIPanGestureRecognizer) 仅响应单指事件。我想在其他事件之上添加一个两指事件。

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

如果用户用两根手指而不是一根手指滚动页面,我所需要的只是一种引发额外自定义事件的方法,但它仍应像调用单指事件一样滚动页面。

如何在 MonoTouch 中做到这一点?

提前致谢。

【问题讨论】:

    标签: ios xamarin.ios gestures uipageviewcontroller uipangesturerecognizer


    【解决方案1】:

    我自己解决了这个问题。 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;
    

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

    【讨论】:

    • 您应该将您的问题标记为已回答。可以在stackoverflow中回答你自己的问题:)
    猜你喜欢
    • 2011-12-08
    • 2020-02-09
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多