2015-11-25 9 views
0

У меня есть контейнер UIViewController (IntroViewController), в котором я загружаю UIPageViewController (PageViewController). В UIPageViewController у меня есть IntroPageContentViewControllers и LastIntroPageContentViewController.iOS UIPageViewController с фоном

My storyboard setup

Я хочу иметь фоновое изображение в UIPageViewController. Если я положил его в IntroViewController, он не доступен для просмотра. Я не могу поместить его в UIPageViewController, и когда я положил его в один из ContentViewControllers, он прокручивается с каждой страницей. Я хочу, чтобы он был в одном месте и только прокручивал содержимое.

Где я могу разместить UIImageView и где должен bringSubviewToFront или что-то в этом роде?

ответ

2

Просто поместите UIImageView в контейнер UIViewController и установить view.backgroundColor свойство [UIColor clearColor] как для содержания контроллеров представления.

Вот вам пример того, как это работает: https://github.com/Wojdan/stackAnswers/tree/master/33912671

+0

Спасибо за ваш ответ! Мне нравится, как вы работаете с примерами в Github, очень умный. Я буду клонировать и посмотреть, как это работает. Мне нужен белый фон на контроллере контейнера, а затем поставить изображение поверх этого, поэтому я попробую. – jbehrens94

1
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]; 



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

// У меня есть еще одно решение: – user5598510

+0

Это не работает. Это дает мне черный фон, и изображение не отображается. – jbehrens94

0

В идеале, вы должны быть добавление UIPageViewController, как ребенок его parentViewController. В вашем случае IntroViewController является родителем, а PageViewController станет его потомком.

Теперь вы установили IntroViewController цвет фона из изображения, как показано ниже:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]]; 

И потом, вы можете очистить цвета фона для содержания контроллеров отображения, которые вы планируете добавить в UIPageViewController.

Однако, возможно, придется прокомментируйте ниже делегата, чтобы удалить управление страницей из нижней части `UIPageViewController»

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController 
{ 
} 

Надеется, что это помогает.

 Смежные вопросы

  • Нет связанных вопросов^_^