iOS 带背景的 UIPageViewController
iOS UIPageViewController with background
我有一个容器 UIViewController
(IntroViewController),我在其中加载了一个 UIPageViewController
(PageViewController)。在 UIPageViewController
中,我有 IntroPageContentViewControllers
和一个 LastIntroPageContentViewController
.
我想在 UIPageViewController
中有一个背景图片。如果我把它放在 IntroViewController
中,它是不可见的。我无法将其放入 UIPageViewController
,当我将其放入 ContentViewControllers
之一时,它会随着每一页滚动进出。我希望它在一个地方并且只滚动内容。
我应该把 UIImageView
放在哪里,我应该把 bringSubviewToFront
放在哪里?
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];
只需将 UIImageView
放入容器 UIViewController
并将两个内容视图控制器的 view.backgroundColor
属性 设置为 [UIColor clearColor]
。
这里有一个工作原理示例:
https://github.com/Wojdan/stackAnswers/tree/master/33912671
理想情况下,您应该添加 UIPageViewController
作为其 parentViewController 的子项。在您的情况下,IntroViewController
是父级,PageViewController 将成为它的子级。
现在,您设置 IntroViewController
图像的背景颜色,如下所示:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]];
然后,您可以清除您计划添加到 UIPageViewController
中的内容视图控制器的背景颜色。
但是,您可能需要在委托下方评论以从“UIPageViewController”底部删除页面控件
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
}
希望这对您有所帮助。
我有一个容器 UIViewController
(IntroViewController),我在其中加载了一个 UIPageViewController
(PageViewController)。在 UIPageViewController
中,我有 IntroPageContentViewControllers
和一个 LastIntroPageContentViewController
.
我想在 UIPageViewController
中有一个背景图片。如果我把它放在 IntroViewController
中,它是不可见的。我无法将其放入 UIPageViewController
,当我将其放入 ContentViewControllers
之一时,它会随着每一页滚动进出。我希望它在一个地方并且只滚动内容。
我应该把 UIImageView
放在哪里,我应该把 bringSubviewToFront
放在哪里?
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];
只需将 UIImageView
放入容器 UIViewController
并将两个内容视图控制器的 view.backgroundColor
属性 设置为 [UIColor clearColor]
。
这里有一个工作原理示例: https://github.com/Wojdan/stackAnswers/tree/master/33912671
理想情况下,您应该添加 UIPageViewController
作为其 parentViewController 的子项。在您的情况下,IntroViewController
是父级,PageViewController 将成为它的子级。
现在,您设置 IntroViewController
图像的背景颜色,如下所示:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]];
然后,您可以清除您计划添加到 UIPageViewController
中的内容视图控制器的背景颜色。
但是,您可能需要在委托下方评论以从“UIPageViewController”底部删除页面控件
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
}
希望这对您有所帮助。