8

Ich mache ein Tutorial, wenn App zum ersten Mal startet und UIPageViewController dafür verwenden. Alles funktioniert gut, aber die Hintergrundfarbe von UIPageViewController wird nicht transparent. Es ist immer schwarz, wie unten dargestellt:UIPageViewController und UIPageControl transparente Hintergrundfarbe - iOS

enter image description here enter image description here

Hier ist, wie ich die UIPageViewController bin Zugabe (in einem Tabbar Controller)

.h-Datei:

@interface CHMainTabViewController : UITabBarController <UIPageViewControllerDataSource> 

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

.m Datei (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]; 
s Hintergrundfarbe: 0

in meinem AppDelegate.m, ich habe auch UIPageControl

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

Ich weiß, dass das Problem mit den UIPageViewController ist s Hintergrundfarbe löschen‘ gesetzt. Ist es nicht möglich, den Hintergrund eines Controllers transparent zu gestalten?

Bitte helfen!

Danke.

Antwort

3

Okay, ich die Lösung gefunden haben:

  1. ein Hintergrundbild Auf dem 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. Für Ihre PageViewController viewControllers, ein PNG-Bild mit Grafiken wählen oder was auch immer Sie wollen, aber stellen Sie sicher, der Hintergrund transparent ist.
  2. Legen Sie Ihre UIPageControl ‚s Hintergrund als transparent in appDelegate.m

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

Jetzt laufen und Ihre UIPageViewController wird so aussehen, (man beachte den Hintergrund statisch und nur der Text bewegt, wie wir wischen von rechts nach links): enter image description here

1

Setzen Sie diese auf die Seite Ansicht Controller vor der Präsentation

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

Dies behob mein Problem mit keinem Bild für einen Hintergrund und ich wollte den Inhalt hinter dem Seitencontroller durchkommen. –