在旋转时删除UIPageViewController上的pageIndicator

时间:2014-02-27 20:07:57

标签: ios objective-c uipageviewcontroller

在横向中,我希望UIPageViewController的内容是全屏的,我想隐藏页面指示符。在肖像中,我想显示页面指示符。

我知道实现数据源方法会使页面指示器显示/不显示(参见https://stackoverflow.com/a/20749979/1103584),但正如我之前所说,我希望能够根据方向选择性地隐藏它们。我的应用。

我该怎么做?我之前在其他应用程序中看过它(App Annie中的图表)所以我知道这是可能的。一个答案,你迭代UIPageViewController的子视图,找到一个UIPageControl的实例听起来像一个非常hacky解决方案给我...必须有一个更“官方”的方式来做它。

提前致谢。

2 个答案:

答案 0 :(得分:1)

尝试将此添加到您的代码中......

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
{
    [super willAnimateRotationToInterfaceOrientation:orientation duration:duration];

    UIPageControl *pageControl = [UIPageControl appearance];

    if (UIInterfaceOrientationIsLandscape(orientation)) 
    {
        pageControl.alpha = 0;
    }
    else if (UIInterfaceOrientationIsPortrait(orientation)) 
    {
        pageControl.alpha = 1;
    }
}

答案 1 :(得分:1)

目前,在调用setViewControllers:direction:animated:completion:方法之后,无法更改UIPageViewController页面指示器的默认行为。希望在将来的更新中添加一种隐藏导航栏的类似方法。