基于iOS页面的模板,关于UIPageViewController和UIPageControl点的颜色

时间:2014-02-02 15:37:32

标签: ios storyboard xcode5 uipageviewcontroller uipagecontrol

在xcode上创建基于页面的模板并且只是将UIPageViewController过渡样式更改为Scroll后,尝试更改点的UIPageControl颜色时遇到问题。

点上没有出现点,我不知道为什么。

我刚改变了:

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];

并且,在AppDelegate.m上(didFinishLaunchingWithOptions):

UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor whiteColor];

请帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:0)

在我看来,你正走在正确的轨道上。使用外观代理应该工作。我这样做是有效的(在你的AppDelegate中做,并在界面出现之前执行):

UIPageControl* proxy = 
    [UIPageControl appearanceWhenContainedIn:[UIPageViewController class], nil];
[proxy setPageIndicatorTintColor:[UIColor lightGrayColor];
[proxy setCurrentPageIndicatorTintColor:[UIColor blackColor]];
[proxy setBackgroundColor:[UIColor whiteColor]];

您还必须实现两个委托方法:

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pvc {
    // ...
}

-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pvc {
    // ...
}

否则,UIPageControl将不会出现!

除此之外,我看不出你正在做什么和我在做什么之间有太大的区别,但我知道我的代码确实有效。您可以在此处下载并试用:

https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch06p311pageController/ch19p626pageController/AppDelegate.m