8

Sto facendo un tutorial quando l'app si avvia per la prima volta e utilizzando UIPageViewController per quello. Tutto funziona bene, ma il colore di sfondo di UIPageViewController non diventa trasparente. E 'sempre il nero, come illustrato di seguito:UIPageViewController e UIPageControl colore di sfondo trasparente - iOS

enter image description here enter image description here

Ecco come sto aggiungendo il UIPageViewController (in un controller TabBar)

file h:

@interface CHMainTabViewController : UITabBarController <UIPageViewControllerDataSource> 

@property (strong, nonatomic) UIPageViewController *pageViewController; 
@end 

.m file (in viewDidLoad):

// Create page view controller 
self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"]; 
self.pageViewController.dataSource = self; 
self.pageViewController.view.backgroundColor = [UIColor clearColor]; 
TutorialViewController *startingViewController = [self viewControllerAtIndex:0]; 

       NSArray *viewControllers = @[startingViewController]; 

       [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 
[self presentViewController:_pageViewController animated:YES completion:nil]; 

nel mio AppDelegate.m, ho anche impostato 's colore di sfondo per cancellare:

UIPageControl *pageControl = [UIPageControl appearance]; 
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor]; 
pageControl.currentPageIndicatorTintColor = [UIColor blackColor]; 
pageControl.backgroundColor = [UIColor clearColor]; 
[pageControl setOpaque:NO]; 
self.window.backgroundColor = [UIColor clearColor]; 

So che il problema è con il UIPageViewController' UIPageControl colore di sfondo s. Non è possibile impostare lo sfondo di un Controller in modo che sia trasparente?

Si prega di aiuto!

Grazie.

risposta

3

Ok ho trovato la soluzione:

  1. impostare un'immagine di sfondo sul UIPageViewController.

UIView *view = [[UIView alloc] init]; view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); UIImageView *imageView1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"login_backgroung"]]; imageView1.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); [view addSubview:imageView1];

// Create page view controller 
self.pageViewController = [self.storyboard 

instantiateViewControllerWithIdentifier:@"PageViewController"]; 
self.pageViewController.dataSource = self; 
self.pageViewController.view.backgroundColor = [UIColor clearColor];     
[self.pageViewController.view insertSubview:view atIndex:0]; 
  1. Per la vostra PageViewController viewControllers, scegliere un'immagine PNG con la grafica o quello che volete, ma assicurarsi che lo sfondo è trasparente.
  2. impostare lo sfondo UIPageControl s' come trasparente in appDelegate.m

    UIPageControl *pageControl = [UIPageControl appearance]; pageControl.pageIndicatorTintColor = [UIColor whisperWhite]; pageControl.currentPageIndicatorTintColor = [UIColor whisperDarkGray]; pageControl.backgroundColor = [UIColor clearColor];

Ora corri e il tuo UIPageViewController sarà simile a questa, (notare lo sfondo statico e solo il testo è in movimento, come noi scorri da destra verso sinistra): enter image description here

1

Impostare questi per il controller di visualizzazione di pagina prima di presentarlo

pageViewController.providesPresentationContextTransitionStyle = YES; 
pageViewController.definesPresentationContext = YES; 
[pageViewController setModalPresentationStyle:UIModalPresentationOverCurrentContext]; 
+0

Questo problema risolveva il problema senza immagini per uno sfondo e volevo che il contenuto dietro il controller della pagina venisse visualizzato. –

Problemi correlati