iOS UIPageViewController 页面控件不同步

Posted

技术标签:

【中文标题】iOS UIPageViewController 页面控件不同步【英文标题】:iOS UIPageViewController page control getting out of sync 【发布时间】:2016-04-08 13:09:20 【问题描述】:

每当我滑动页面控制器并同时在与滑动相反的方向点击底部的UIPageControl时,当前正在显示的页面和pageControl中的页码将不同步。

有没有人遇到过这个奇怪的问题并解决了?

如果您需要任何其他信息,请告诉我。

【问题讨论】:

哇,很棒的发现。我刚刚在我的一个应用程序中验证了类似的东西。在页面控件上滑动会更改页面指示器,但不会更改底层页面。 【参考方案1】:

刚刚查看了UIPageControl 的文档。我自己从来没有意识到这一点,但您可以使用页面控件进行输入:

当用户点击页面控件移动到下一页或上一页时, 控件发送 UIControlEventValueChanged 事件以供处理 代表。然后,委托可以评估 currentPage 属性 确定要显示的页面。页面控件只前进一个 任一方向的页面。

我的建议是禁用页面控件或更新您的应用以响应输入。在我的页面控件上将userInteractionEnabled 设置为false 解决了我的问题。

【讨论】:

嗨@Greg,我尝试将页面控件的 userInteractionEnabled 设置为 false。但在我的情况下,当我开始快速来回滚动时,它的行为相同。我尝试在presentationIndexForPageViewController 中返回当前索引,然后再次返回同样的结果。我还尝试更新页面 - (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed。它工作顺利,但介于两者之间,表现相同。 不确定可能是什么问题。这是我的控制器:github.com/gk-brown/MarkupKit/blob/master/MarkupKitExamples/… currentPage 属性由 UIScrollView 上的类别添加:github.com/gk-brown/MarkupKit/blob/master/MarkupKit/…

以上是关于iOS UIPageViewController 页面控件不同步的主要内容,如果未能解决你的问题,请参考以下文章

IOS 如何从其子级访问 uipageviewcontroller?

访问iOS6 UIPageViewController 创建的UIPageControl?

iOS UIPageViewController

iOS - 这是由 UISegmentedControl 控制的 UIPageViewController,还是这是啥?

UIPageViewController 让 UItalkeViewController 在 iOS 13 上“跳跃”

iOS Swift:UIPageViewController - 以编程方式翻页