2015-08-03 12 views

risposta

18

edit: ho pensato che la questione era di circa UIPageControl.

Si dovrebbe essere in grado di modificare semplicemente il colore di vista del UIPageViewController:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor blueColor]; //Set to any color. 
} 
+1

Questa è la risposta corretta alla domanda – jtymann

3

In questo caso, è necessario cambiare UIPageControl di UIPageViewCotroller.

Prova questo.

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

Se si proietta è scritto da Swift, provare questo.

let proxy: UIPageControl = UIPageControl.appearanceWhenContainedInInstancesOfClasses(self.pageViewController.self) 
proxy.pageIndicatorTintColor = UIColor.lightGrayColor() 
proxy.currentPageIndicatorTintColor = UIColor.blackColor() 
proxy.backgroundColor = UIColor.whiteColor() 
+0

La domanda è relativa al colore a scorrimento di UIPageViewController, non a UIPageControl. – kelin

+0

La domanda è "Come impostare il colore di sfondo di un UIPageViewController" e non su UIPageControl, si prega di modificare la risposta. –

0

Sì, è possibile cambiare il colore di sfondo, ma non sembra essere esposti in Interface Builder.

Seguendo il metodo proscritto per l'installazione del controller della vista pagina in IB, è necessario:
1. Aggiungere un UIContainerView al controller della vista
2. Aggiungere un UIPageViewController allo storyboard
3. Aggiungere un Embed segue dal UIViewContainer al UIPageViewController (con la myPageViewController identificatore)

l'dal controller di vista originale, aggiungere questo al tuo metodo di prepareForSegue:

if ([segueName isEqualToString: @"myPageViewController"]) { 
     /* _pageViewController is a property where I keep a reference to the embedded controller */ 
     if (_pageViewController == nil) { 
      /* only do this once */ 
      _pageViewController = (WePageViewController*)[segue destinationViewController]; 
      _pageViewController.dataSource = ...; 
      _pageViewController.delegate = ...; 
      _pageViewController.view.backgroundColor = [UIColor purpleColor]; 
    } 

p.s. scuse come non ho trasferito a Swift ancora ...

0

Per cambiare il colore di sfondo, usa il UIPageControl e assegnare la proprietà backgroundColor al UIColor desiderata

UIPageControl *pageControl = [UIPageControl appearance]; pageControl.backgroundColor = [UIColor orangeColor];

2

vista di All'interno UIPageViewController, è possibile utilizzare questo codice:

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Set backbround color to white 
    self.view.backgroundColor = UIColor.white 
} 

Ho impostato il colore su bianco, ma è possibile inserire praticamente il colore desiderato.

Cheers!