更改UIPageViewController自己的PageController关于点的颜色

Lig*_*ier 19 xcode properties objective-c uipageviewcontroller

嘿我正在使用UIPageViewController控制我在哪个页面和滚动.我知道只需添加以下两个函数就可以显示页面控制器.

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
Run Code Online (Sandbox Code Playgroud)

我想知道的是,是否可以更改页面控制器的颜色,所以在我使用的背景上点更明显?

我知道常规页面控制器具有以下属性:

@property(nonatomic,retain) UIColor *currentPageIndicatorTintColor
@property(nonatomic,retain) UIColor *pageIndicatorTintColor
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何从UIPageViewController访问这些属性或页面控制器.

如果有人刚才说如何更改属性,这可能会有所帮助?

Pas*_*nen 56

您可以使用UIAppearance配置UIPageControl颜色.这也适用于UIPageViewControllers中的UIPageControls.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  UIPageControl *pageControl = [UIPageControl appearance];
  pageControl.pageIndicatorTintColor = [UIColor whiteColor];
  pageControl.currentPageIndicatorTintColor = [UIColor redColor];
}
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这会改变应用程序中'UIPageViewController`的*all*实例的色调颜色.如果您想单独定制它们会怎样? (6认同)
  • +1这应该有更多的观点和投票.这是完美的! (3认同)
  • @Zorayr 你可以使用 let pageControl: UIPageControl = UIPageControl.appearance(whenContainedInInstancesOf: [MyPageViewController.self]) 并开始自定义 pageControl (2认同)

Hel*_*ffy 12

如果要更改特定UIPageViewController的UIPageControl颜色,可以使用以下命令:

在Swift 3中

let pageControl: UIPageControl = UIPageControl.appearance(whenContainedInInstancesOf: [MyPageViewController.self])
pageControl.pageIndicatorTintColor = UIColor.green
// ... any other changes to pageControl
Run Code Online (Sandbox Code Playgroud)