UIPageViewController 和 UICollectionView 用于单元网格结构

UIPageViewController along with UICollectionView for cell grid structure

我有一个 UICollectionView,它使用 UICollectionViewFlowLayout 在集合视图中排列我的单元格。

在我的单元格中,我有一个图像和一个标签。使用上面的布局,我可以设计带有垂直滚动的集合视图,

但是我想要一个像 UIPageViewController 这样的结构,而不是垂直滚动,它将包含我的 UICollectionView 和上面的单元格。

我试过flowLayout.scrollDirection = .horizontal, 但是用这种方法我无法解决我的问题。

我是 Swift 的新手,我没有使用故事板。

打开故事板,select collectionView 并将滚动方向从垂直更改为水平,如下所示:)

现在您的 collectionView 将开始水平滚动而不是垂直滚动:)

如果你想要分页,比如 pageViewController 中的 ViewControllers,select collectionView 和 select 启用分页复选框:)

现在,如果您希望您的集合视图单元像 UIPageViewController 中的视图控制器一样覆盖整个 collectionView,请在您的 UICollectionView 委托中键入此内容:)

extension YourViewController : UICollectionViewDelegateFlowLayout {
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return self.pageViewController.frame.size
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 0.0
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 0.0
    }
}

想要在上述方法中保留单元格之间的间距 return 值而不是 0.0 :) 仅此而已

编辑

如果您没有故事板,您可以使用

以编程方式设置滚动方向和其他属性
(self.collectionView.collectionViewLayout as! UICollectionViewFlowLayout).scrollDirection = .horizontal

我从下面找到了我的答案link: http://swiftiostutorials.com/ios-tutorial-using-uipageviewcontroller-create-content-slider-objective-cswift/

对我帮助很大。谢谢