UIPageViewController 背景在 Objective C iOS 中从不透明

Posted

技术标签:

【中文标题】UIPageViewController 背景在 Objective C iOS 中从不透明【英文标题】:UIPageViewController background never transparent in Objective C iOS 【发布时间】:2017-07-21 06:47:17 【问题描述】:

我想让UIPageViewController的背景透明,这样我就可以看到UIPageViewController后面的图像,它永远不会随着UIPageViewController的滚动而移动。

我尝试了很多东西,包括[UIColor clearcolor],但它不会显示UIPageViewController背后的内容。

【问题讨论】:

在您的 pageviewcontroller 中添加这一行 viewdidload self.pageViewController.view.backgroundColor = [UIColor clearColor]; 已经在 viewDidLoad 和 viewDidAppear 中尝试过。它不工作。 显示视图层次结构 【参考方案1】:

试试这些解决方案:

需要清除PageViewContoller的item背景颜色

解决方案 1

通过 UIPageViewController 的 dataSource 方法清除颜色。

UIPageViewControllerDataSource

-(UIViewController *)viewControllerAtIndex:(NSUInteger)index

    PageViewController *itemPage = arrViewControllers[index];
    itemPage.view.backgroundColor = [UIColor clearColor];

    return itemPage;

解决方案 2

在为 pageviewcontroller 数组创建数组时。

for (int i = 0; i < 5; i++) 
            PageItemViewController *pageItemController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageItemViewController"];
            pageItemController.view.backgroundColor = [UIColor clearColor];
            
            [arrViewControllers addObject:pageItemController];
        

【讨论】:

非常感谢。像魅力一样工作。它拯救了我的一天。 @DanielJames 欢迎。能帮助你是我的荣幸。享受编码:)【参考方案2】:

把这个self.modalPresentationStyle = UIModalPresentationCustom;放在你从PageViewController和每个子viewController继承的ViewController中,并清除每个的backgroundColor。

【讨论】:

以上是关于UIPageViewController 背景在 Objective C iOS 中从不透明的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIPageViewController 中更改页面指示器的背景颜色

UIPageViewController 中控制器后面的黑色背景

UIPageViewController 将先前的 ViewController 保持在视图的背景上

UIPageViewController 和 UIPageControl 透明背景颜色 - iOS

UIPageViewController 具有一个恒定的背景图像

我们可以在 UIPageViewController 中自定义页面指示器吗?