我正在创建如下屏幕:
但是问题是,pagedView需要我的视图控制器从UIPagedViewController
继承,而colleciton视图需要从UICollectionViewController
继承。
有没有办法做到这一点?
答案 0 :(得分:1)
您不必使用UIPagedViewController
或UICollectionViewController
使其继承自UIViewController
,而在内部说loadView/ViewDidLoad
则使用
let pager = UIPagedViewController()
// then add it as a child vc and constraint it's view or set a frame
和
let collec = UICollectionView(///
// add to view and constraint also
上面的内容也应该是实例vars,因此它们的委托/数据源将被保留
答案 1 :(得分:1)
这样怎么样?
class MyPagedView: UIView, UIPageViewControllerDataSource {
// add your pages
}
class MyCollectionView: UICollectionView, UICollectionViewDataSource {
// add your collection view
}
class ViewController: UIViewController {
lazy var myPages: MyPagedView = {
let pages = MyPagedView()
return pages
}()
lazy var myCV: MyCollectionView = {
let cv = MyCollectionView()
return cv
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(myPages)
view.addSubview(myCV)
}
}
当然,您将必须根据需要设置约束。