当extendedLayoutIncludesOpaqueBars设置为true时,UICollectionView不起作用

Ele*_*ani 10 ios uicollectionview swift

我有UIViewController,它扩展了UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout.

override func viewDidLoad() {
    super.viewDidLoad()
    collectionView.delegate = self
    collectionView.dataSource = self
    self.extendedLayoutIncludesOpaqueBars = true

}
Run Code Online (Sandbox Code Playgroud)

未调用UICollectionviewDelegate和DataSource方法,因此UICollectionview似乎为空.即使我调用重载数据,DataSource方法仍然没有被调用.

当我删除最后一行时,除了viewController下方有空格外,一切正常.

小智 0

扩展布局的边缘

基本上,通过此属性,您可以设置视图的哪一侧可以扩展以覆盖整个屏幕。想象一下,你将一个 UIViewController 推入一个 UINavigationController 中,当该视图控制器的视图被布局时,它将从导航栏结束的地方开始,但是这个属性将设置视图的哪一侧(上、左、下、右)可以延伸至填满整个屏幕。

您需要设置这两项之一

self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
Run Code Online (Sandbox Code Playgroud)

或者

self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = YES;
Run Code Online (Sandbox Code Playgroud)

也许它会对你有帮助。