我能够在第一页上成功更改UIPageViewController上的PageControl /页面指示器的颜色。我的用例要求每个页面都是不同的颜色,要求PageControl /页面指示符与页面匹配颜色。我尝试根据页面索引更改颜色,但它不起作用。
任何人都知道如何解决这个问题?
- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index
{
if ([tutorialItems count] == 0) {
return nil;
}
// Create a new view controller and pass suitable data.
PageContentViewController *pageContentViewController
= [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
TutorialItem *tutorialItem = [tutorialItems objectAtIndex:index];
pageContentViewController.imageFile = tutorialItem.tutorialImageFileName;
pageContentViewController.titleText = tutorialItem.tutorialTitle;
pageContentViewController.tutorialText = tutorialItem.tutorialText;
int red = tutorialItem.tutorialRedKey;
int green = tutorialItem.tutorialGreenKey;
int blue = tutorialItem.tutorialBlueKey;
pageContentViewController.pageIndex = index;
tutorialBackgroundColor = [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1.0f];
pageContentViewController.tutorialBackgroundColor = tutorialBackgroundColor;
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor blackColor];
pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];
pageControl.backgroundColor = [UIColor clearColor];
pageContentViewController.pageControllerColor = tutorialBackgroundColor;
return pageContentViewController;
}
答案 0 :(得分:0)
appearance
代理属性。更改appearance
属性不会更改已显示的组件。如果要更改屏幕上已有组件的颜色,则需要引用它并直接更改其颜色,或将其从视图层次结构中删除并重新添加。
You can read the documentation here
相关引用:
iOS在视图进入窗口时应用外观更改,但不会 更改已在窗口中的视图的外观。改变 当前在窗口中的视图的外观,删除视图 从视图层次结构中然后将其放回去。