uicollectionview删除顶部填充

我有一个UICollectionView是整个视图,但它住在“视图”(它不是UICollectionViewController)。 向这个集合视图中添加一个单元格将在故事板中按以下顺序显示它:

故事板视图

这是它在模拟器中的外观:

仿真器视图

我不明白如何摆脱这个观点。 所有的插图在Storyboard Size Inspector中都为零,用于收集视图。 可以肯定的是,我也有以下代码:

override func viewWillLayoutSubviews() { let layout = self.collectionViewProducts.collectionViewLayout as! UICollectionViewFlowLayout let containerWidth = UIScreen.main.bounds.size.width - 40.0 let itemWidth = (containerWidth / 3.0) let itemHeight = (itemWidth / 0.75) + 30 layout.sectionInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0) layout.itemSize = CGSize(width: itemWidth, height: itemHeight) } 

我怎样才能摆脱顶部填充?

您可以通过考虑以下方法之一来修复顶部填充问题。

方法1 :自然的方法来解决你的问题,从StoryBoard正确设置你的collectionView dimensions

在这里输入图像说明

方法2**Updated**

您可以在viewDidLayoutSubviewsviewWillLayoutSubviewsvalidationcollection frame

  override func viewDidLayoutSubviews() { collectionView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height) } 

方法3 :您可以从StoryBoard Attributes Inspector Adjust Scroll View Insets

在这里输入图像说明

方法4 :您可以通过调整CollectionView contentInset编程方式修复此问题。

 collectionView.contentInset = UIEdgeInsets(top: **Any Value**, left: 0, bottom: 0, right: 0) 

带顶部填充的输出5:

在这里输入图像说明

带顶部填充的输出44:

在这里输入图像说明

带顶部填充的输出64:

在这里输入图像说明

通过在IB>属性检查器中取消选中半透明checkbox来使Navigation Controller > NavigationBar半透明,并且它将工作。

我认为,因为这个viewControllerembedded在navigationController。 让我们在故事板中select这个viewController并取消勾选Adjust Scroll View Insets

在这里输入图像说明