在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];
请帮忙吗?
感谢。
答案 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将不会出现!
除此之外,我看不出你正在做什么和我在做什么之间有太大的区别,但我知道我的代码确实有效。您可以在此处下载并试用: