我们可以在 IOS6 的滚动模式下使用 UIPageViewController 内的按钮吗?

Posted

技术标签:

【中文标题】我们可以在 IOS6 的滚动模式下使用 UIPageViewController 内的按钮吗?【英文标题】:Can we uses button inside a UIPageViewController in scroll mode in IOS6? 【发布时间】:2013-08-15 05:47:09 【问题描述】:

我试过这个解决方案:

UIButton interaction inside UIPageViewController

它说我应该设置委托 UIPageViewController 手势识别器。但它返回零。

例如,如果我是 UIPageViewController 的子类并在 viewDidload 中这样做:

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view.
    PO(self.gestureRecognizers);
    PO(self.view.gestureRecognizers);


我明白了:

self.gestureRecognizers: (
)
self.view.gestureRecognizers: (null)

因此,我无法为 UIPageViewController 的手势识别器设置委托,因为我没有指向它的指针。但是那个 UIPageViewController 吸收了我的按钮没有被按下的所有点击。那我该怎么办?

我从堆栈溢出的各种类似问题中尝试了许多解决方案。一切都失败了。

这是一个简单的问题。我在 UIPageViewController 中有一个 UIButton。为什么会这么难?

UIPageViewController 的手势识别器的代理到底是什么?

UIPageViewController 也没有 rootViewController,我很困惑为什么人们说它有。

【问题讨论】:

【参考方案1】:

告诉我们,你如何继承 UIPageViewController。

这至少有效:

  UIPageViewController *pageVC = [[UIPageViewController alloc] init];
  NSLog(@"%@", pageVC.gestureRecognizers);

这个控制器肯定有gestureRecognizers属性:

【讨论】:

您的 UIPageViewController 是否处于滚动模式而不是页面卷曲模式? 这是我的示例代码,我只是尝试检查您所说的内容。我没有更改默认模式。我想,根据文档,它应该在根类(而不是子类)的两种模式下工作 - 没有说明。 是的,默认过渡样式是卷页。所以,你是对的。当我尝试使用过渡样式滚动来初始化它时,它没有识别器。所以,问题不在于子类化。看起来在那种模式下它不起作用。 好吧,如果我无法访问gestureRecoqnizers,我该如何关闭tapgestureRecoqnizers?我希望 UIPageViewController 中的按钮能够工作。

以上是关于我们可以在 IOS6 的滚动模式下使用 UIPageViewController 内的按钮吗?的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图在 iOS 7 中运行良好,但在 iOS6 中出现问题

iOS 7 机器人/iPhone 5s 在扬声器模式下出现乱码

在 iOS6、XCode 4.5 中,UIScrollView 不滚动,尽管设置了 contentSize

前端学习记录

UIButton 在 iOS 7 的兼容模式下没有获得 iOS 6 样式

在 ios6 下横向启动应用程序同时支持所有方向