首页 > 解决方案 > 改变 UIPageViewController Swift5 的背景颜色

问题描述

有没有办法将图像上的颜色从白色变为蓝色? 卷页图片

我可以将背景颜色设置为蓝色,但我不知道如何更改背面的颜色。我也找不到任何文章。如果你知道如何解决这个问题,请告诉我。

我的代码如下。

谢谢你。

import UIKit

class ViewController: UIViewController {
    
    //MARK: - Properties
    var pageViewController:UIPageViewController!
    var viewControllersArray:Array<UIViewController> = []

    //MARK: - Lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()
                
        let texts = ["aaa", "bbb", "ccc"]
        
        for text in texts {
            configureViewController(withText: text)
        }
        configurePageViwControllers()
    }
    
    //MARK: - Helpers
    func configureViewController(withText text: String) {
        let viewController = UIViewController()
        viewController.view.backgroundColor = .blue
        
        let label: UILabel = {
            let label = UILabel()
            label.text = text
            label.font = UIFont.boldSystemFont(ofSize: 20)
            label.textColor = .white
            return label
        }()
        
        viewController.view.addSubview(label)
        label.anchor(top: viewController.view.safeAreaLayoutGuide.topAnchor, left: viewController.view.leftAnchor)
        
        viewControllersArray.append(viewController)
    }
    
    func configurePageViwControllers() {
        pageViewController = UIPageViewController(transitionStyle: .pageCurl,
                                                  navigationOrientation: .horizontal,
                                                  options: nil)
        pageViewController.dataSource = self
        pageViewController.delegate = self
        
        pageViewController.setViewControllers([viewControllersArray[0]], direction: .forward, animated: true, completion: nil)
        pageViewController.view.frame = self.view.frame
        self.view.addSubview(pageViewController.view)
    }
}


//MARK: - UIPageViewControllerDataSource
extension ViewController: UIPageViewControllerDataSource{
        
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
        guard let index = viewControllersArray.firstIndex(of: viewController), index < (viewControllersArray.count - 1) else{return nil}
        let after = index + 1
        return viewControllersArray[after]

    }
    
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
        guard let index = viewControllersArray.firstIndex(of: viewController), index > 0 else{return nil}
        let before = index - 1
        return viewControllersArray[before]
    }
}

//MARK: - UIPageViewControllerDelegate
extension ViewController: UIPageViewControllerDelegate {
    
}

标签: iosswiftuipageviewcontrolleruipagecontrolpage-curl

解决方案


推荐阅读