2015-11-25 70 views
0

我有一个容器UIViewController(IntroViewController),其中我加载UIPageViewController(PageViewController)。在UIPageViewController中,我有IntroPageContentViewControllersLastIntroPageContentViewControlleriOS UIPageViewController与背景

My storyboard setup

我想有在UIPageViewController的背景图像。如果我把它放在IntroViewController中,它是不可见的。我不能把它放在UIPageViewController中,当我把它放入其中一个​​时,它会滚动出入每一页。我希望它在一个地方,只能滚动内容。

我在哪里把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 
{ 
} 

希望底部删除页面控制这会有所帮助。