UICollectionViewCell未显示

时间:2016-08-25 07:07:05

标签: ios swift uicollectionview

我正在ViewController中构建一个自定义菜单,它包含两个容器视图控制器。

顶视图是UICollectionViewController(流程布局/水平滚动方向)

底视图是UIPageViewController

Everthing工作正常。但是,当我嵌入导航控制器时,collectionviewCell不会按预期显示任何想法?

另外,我发现嵌入导航控制器时,不会调用以下功能。

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {}
 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { }

没有嵌入式导航控制器

enter image description here enter image description here

使用嵌入式导航控制器

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

在包含集合视图的子视图控制器中,使用viewDidLoadviewDidLayoutSubviews方法添加代码,如下所示。它应该解决你的问题。

override func viewDidLoad() {
    super.viewDidLoad()
    self.automaticallyAdjustsScrollViewInsets = false
}

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    self.collectionView.contentInset = UIEdgeInsetsMake(self.topLayoutGuide.length,
                                                        0.0,
                                                        self.bottomLayoutGuide.length,
                                                        0.0)
}

原因是,默认情况下,UIViewController实例通过更新contentInset子类的UIScrollView来响应在导航控制器内部(在您的情况下是UICollectionView)。所以这里你只是说不要自动更新插图。