gpt4 book ai didi

ios - 以编程方式添加 UIPageViewController

转载 作者:行者123 更新时间:2023-11-28 06:14:12 30 4
gpt4 key购买 nike

我正在尝试以编程方式将 UIPageViewController 添加到自定义 UICollectionViewCell。在预期的结果中,我希望能够在 UICollectionViewCell 内的不同 Controller 之间滑动。这是我写的代码:

import UIKit

class SlidingCellCell : UICollectionViewCell, UIPageViewControllerDataSource, UIPageViewControllerDelegate{


var pages = [UIViewController]()
let pageControl = UIPageControl()
let pageViewController = UIPageViewController()

override func awakeFromNib() {
super.awakeFromNib()

pageViewController.dataSource = self
pageViewController.delegate = self
let initialPage = 0
let page1 = myViewController1()
let page2 = myViewController1()
let page3 = myViewController1()
self.pages.append(page1)
self.pages.append(page2)
self.pages.append(page3)
pageViewController.setViewControllers([pages[initialPage]], direction: .forward, animated: true, completion: nil)
pageViewController.view.frame = self.frame
}

我坚持将 pageViewController 添加到 cell。如果我编写 self.addSubview(pageViewController),我会收到一条错误消息,告诉我该函数需要一个 UIView

我还有另一个错误告诉我该类不符合 protocol UIPageViewControllerDataSource

最佳答案

首先,您必须将 viewcontroller 的 View 添加到单元格中,同时注意 childviewcontroller 的生命周期,例如:

pageViewController.willMove(toParentViewController: <cell's parent viewcontroller coming here>)
addSubview(pageViewController.view)
pageViewController.view.frame = bounds // Set the viewcontroller's view's size, or do it with constraints
pageViewController.didMove(toParentViewController: <same as above>)

在此之后你必须在单元格中实现这两个方法(我不建议在那里创建 View Controller ,但那是另一个话题)

func pageViewController(UIPageViewController, viewControllerBefore: UIViewController) -> UIViewController?

func pageViewController(UIPageViewController, viewControllerBefore: UIViewController) -> UIViewController?

关于ios - 以编程方式添加 UIPageViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610508/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com