我正在使用UIPageViewController,导航设置为Horizontal,Transition Style设置为Scroll(在InterfaceBuilder中),没有脊椎.这给了我一个可爱的UIPageControl集成.现在我希望能够切换它是否正在显示(因为它下面有艺术品).
我已经尝试将presentationCountForPageViewController和presentationIndexForPageViewController设置为在UIPageControl被隐藏时返回0,但是当我想要的时候没有调用那些方法.
暂停堆栈跟踪,我看到它们被[UIPageViewController _updatePageControlViaDataSourceIfNecessary]调用…我认为如果我尝试使用该方法,我的应用程序将被拒绝.
我应该通过子视图搜索它,还是自己滚动以便我可以控制它,还是有更好的方法来切换它的可见性?
谢谢!
解决方法
我会说,通过子视图进行搜索.此代码在子视图层次结构中成功找到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]; } }
我正在使用它来自定义点的颜色,我想你可以用alpha值做同样的事情或者把它发送到背面或者什么东西.
Apple没有通过UIPageViewController类提供与UIPageControl的直接接口,但是没有非法的方法调用才能到达它…我不明白为什么这会导致应用程序拒绝.