访问iOS6 UIPageViewController创建的UIPageControl?

Kao*_*ire 7 uipagecontrol ios uipageviewcontroller ios6

我使用的是UIPageViewController导航设置为水平,过渡样式设置为Scroll(在InterfaceBuilder中),没有脊椎.这给了我一个可爱的UIPageControl集成.现在我希望能够切换它是否正在显示(因为它下面有艺术品).

我已经尝试设置presentationCountForPageViewControllerpresentationIndexForPageViewControllerUIPageControl应该隐藏时返回0 ,但是当我想要时,这些方法没有被调用.

暂停堆栈跟踪,我看到它们被调用[UIPageViewController _updatePageControlViaDataSourceIfNecessary]...我认为如果我尝试使用该方法,我的应用程序将被拒绝.

我应该通过子视图搜索它,还是自己滚动以便我可以控制它,还是有更好的方法来切换它的可见性?

谢谢!

小智 16

我会说,通过子视图进行搜索.此代码在子视图层次结构中成功找到UIPageControl:

NSArray *subviews = pageController.view.subviews;
UIPageControl *thisControl = nil;
for (int i=0; i<[subviews count]; i++) {
    if ([[subviews objectAtIndex:i] isKindOfClass:[UIPageControl class]]) {
        thisControl = (UIPageControl *)[subviews objectAtIndex:i];
    }
}
Run Code Online (Sandbox Code Playgroud)

我用它来自定义点的颜色,我想你可以用alpha值做同样的事情或者把它发送到背面或者什么东西.

Apple没有通过UIPageViewController类提供与UIPageControl的直接接口,但是没有非法的方法调用才能到达它...我不明白为什么这会导致应用程序拒绝.

  • 它对我不起作用,使用 Xcode 7.0.1,运行 iOS 9.0。 (2认同)