在uipageviewcontroller中调整页面大小

Resize a page size in uipageviewcontroller

提问人:ManojkumarS 提问时间:10/11/2023 更新时间:10/11/2023 访问量:15

问:

我有一个用于从主相机视图到子过滤器相机视图的 uipageviewcontroller 类,我有一个问题,当我打开子相机视图时,页面会占用一个捕获按钮,所以我需要调整页面相机视图的大小。

import UIKit
import AVFoundation

class filterViewController: UIPageViewController {
    
    var pages: [cameraViewController] = []
  //  var cameraViewController: CameraViewSetup = cameraViewController

    
    override func viewDidLoad() {
        super.viewDidLoad()

        dataSource = self
   
        
        let firstCameraViewController = cameraViewController()
        let secondCameraViewController = cameraViewController()
        let thirdCameraViewController = cameraViewController()
        


        // Add the CameraViewController instances to the 'pages' array
        pages = [firstCameraViewController,secondCameraViewController,thirdCameraViewController]
        // Set the initial view controller to the first page

        for cameraVC in pages {
                  cameraVC.setupCameraView()
              }

        if let firstPage = pages.first {
            setViewControllers([firstPage], direction: .forward, animated: true, completion: nil)
        }
    }
    
    init() {
           super.init(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
       }

       required init?(coder: NSCoder) {
           fatalError("init(coder:) has not been implemented")
       }
}


extension filterViewController: UIPageViewControllerDataSource {
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
            guard let currentIndex = pages.firstIndex(of: viewController as! cameraViewController) else {
                return nil
            }

            let previousIndex = currentIndex - 1
            if previousIndex >= 0 {
                return pages[previousIndex]
            } else {
                return nil // Prevent looping to the last page
            }
        }

        func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
            guard let currentIndex = pages.firstIndex(of: viewController as! cameraViewController) else {
                return nil
            }

            let nextIndex = currentIndex + 1
            if nextIndex < pages.count {
                return pages[nextIndex]
            } else {
                return nil // Prevent looping to the first page
            }
           
        }
    
}



我有一个用于从主相机视图到子过滤器相机视图的 uipageviewcontroller 类,我有一个问题,当我打开子相机视图时,页面会占用一个捕获按钮,所以我需要调整页面相机视图的大小。

Swift UIView 相机 调整 UIPageViewController

评论

0赞 zombie 10/11/2023
默认情况下,“页面”将填满整个可用空间。我建议尝试使用不同的方法,或者将其嵌入到另一个控制器中并在容器中添加按钮UIPageViewControllerUIPageViewController

答: 暂无答案