1

我正在开发一个永远不会提交到 App Store 的 iOS 6 应用程序。

我试图UIPageViewController让用户在四个不同的视图控制器之间从左到右滑动。这很好用,但是为了允许与每个视图控制器进行正常的单指交互,我需要两根手指在UIPageViewController.

文档建议我应该能够通过自定义在我的属性中UIGestureRecognizer找到的对象来做到这一点。但是,当设置为时,此属性似乎是一个空数组。gestureRecognizersUIPageViewControllertransitionStyleUIPageViewControllerTransitionStyleScroll

如果我将属性更改为transitionStyle包含UIPageViewControllerTransitionStylePageCurl对象UIGestureRecognizer,我可以随意自定义它们。

是否有任何(记录或其他)方法可以使用滚动转换类型来实现我想要的?

4

2 回答 2

3

如果它解决了你的问题,我已经用这段代码解决了这个问题。带有滚动转换的 UIPageViewController 是使用 UIScrollView 实现的,它是控制器主视图的子视图,UIScrollViewController 有一个 panGesture 属性用于处理平移的触摸,因此:

for (UIView* view in [editor.view subviews]) {
    if ([view  isKindOfClass:[UIScrollView class]])
    {
        UIScrollView* scrollView = (UIScrollView*)view;
        scrollView.panGestureRecognizer.minimumNumberOfTouches = 2;
    }
}

这解决了问题!

于 2013-05-27T18:10:37.540 回答
2

UIPageViewController.h 有以下评论:

// Only populated if transition style is 'UIPageViewControllerTransitionStylePageCurl'.
@property(nonatomic, readonly) NSArray *gestureRecognizers;

不知道为什么它不在文档中。

于 2013-04-16T00:54:52.693 回答