UIPageViewController:每页更改页面指示器/页面控件的颜色
Posted
技术标签:
【中文标题】UIPageViewController:每页更改页面指示器/页面控件的颜色【英文标题】:UIPageViewController: Change color of page indicator/pagecontrol per page 【发布时间】:2014-04-18 18:06:52 【问题描述】:我能够成功地更改 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;
【问题讨论】:
【参考方案1】:appearance
代理属性仅在组件首次添加到窗口时设置。更改 appearance
属性不会更改已经可见的组件。如果要更改屏幕上已经存在的组件的颜色,则需要引用它并直接更改其颜色,或者将其从视图层次结构中删除并重新添加。
You can read the documentation here
相关引述:
当视图进入窗口时,ios 会应用外观更改,但它不会 更改已经在窗口中的视图的外观。改变 当前在窗口中的视图的外观,删除该视图 从视图层次结构中,然后将其放回。
【讨论】:
以上是关于UIPageViewController:每页更改页面指示器/页面控件的颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何更改 UIPageViewController 中的按钮名称
页面更改时iOS UIPageViewController索引不增加
Swift - 单击按钮更改 UIPageViewController 视图