如何为 UIPageViewController 设置背景颜色?

How to set background color for UIPageViewController?

如何在UIPageViewController中设置背景视图的颜色?是否可以在 Storyboard 中执行此操作?

编辑:我以为问题是关于 UIPageControl 的。

您应该能够简单地修改 UIPageViewController 视图的颜色:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blueColor]; //Set to any color.
}

在这种情况下,您需要更改 UIPageViewCotroller 的 UIPageControl。

试试这个。

UIPageControl* proxy = [UIPageControl appearanceWhenContainedIn:[self.pageViewController class], nil];
[proxy setPageIndicatorTintColor:[UIColor lightGrayColor]];
[proxy setCurrentPageIndicatorTintColor:[UIColor blackColor]];
[proxy setBackgroundColor:[UIColor whiteColor]];

如果你的项目是由 swift 编写的,试试这个。

let proxy: UIPageControl = UIPageControl.appearanceWhenContainedInInstancesOfClasses(self.pageViewController.self)
proxy.pageIndicatorTintColor = UIColor.lightGrayColor()
proxy.currentPageIndicatorTintColor = UIColor.blackColor()
proxy.backgroundColor = UIColor.whiteColor()

是的,您可以更改背景颜色,但它似乎没有显示在 Interface Builder 中。

按照在 IB 中设置页面视图控制器的禁止方法,您需要:
1. 将 UIContainerView 添加到您的视图控制器
2.添加一个UIPageViewController到storyboard
3. 添加一个从 UIViewContainer 到 UIPageViewController 的 Embed segue(标识符为 myPageViewController)

从您的原始视图控制器,将此添加到您的 prepareForSegue 方法:

    if ([segueName isEqualToString: @"myPageViewController"]) {
        /* _pageViewController is a property where I keep a reference to the embedded controller */
        if (_pageViewController == nil) {
            /* only do this once */
            _pageViewController = (WePageViewController*)[segue destinationViewController];
            _pageViewController.dataSource = ...;
            _pageViewController.delegate = ...;
            _pageViewController.view.backgroundColor = [UIColor purpleColor];
    }

p.s。抱歉,我还没有搬到 Swift...

要更改背景颜色,请使用 UIPageControl 并将 backgroundColor 属性 分配给所需的 UIColor

UIPageControl *pageControl = [UIPageControl appearance]; pageControl.backgroundColor = [UIColor orangeColor];

在UIPageViewController的视图中,你可以使用这段代码:

override func viewDidLoad() {
    super.viewDidLoad()

    // Set backbround color to white
    self.view.backgroundColor = UIColor.white
}

我已将颜色设置为白色,但您几乎可以插入任何您想要的颜色。

干杯!