uicollectionview删除顶部填充

时间:2017-03-26 00:00:45

标签: ios iphone swift uicollectionview

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

Storyboard View

这就是它在模拟器中的样子:

Emulator View

我不明白如何摆脱这种观点。对于集合视图,Storyboard Size Inspector中的所有insets都为零。只是为了确定,我还有以下代码:

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)
}

如何摆脱那个顶部填充?

5 个答案:

答案 0 :(得分:9)

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

方法1 :通过dimensions正确设置collectionView StoryBoard来解决问题的自然方法。

enter image description here

方法2 **Updated**

您可以在collection frameviewDidLayoutSubviews

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

方法3 :您可以Adjust Scroll View Insets StoryBoard Attributes Inspector {/ 1}}。

enter image description here

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

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

使用顶部填充5输出

enter image description here

使用顶部填充44输出

enter image description here

使用顶部填充64输出

enter image description here

答案 1 :(得分:3)

我认为因为这个viewController嵌入在navigationController中。让我们在故事板中选择此viewController并取消选中调整滚动视图插入

enter image description here

答案 2 :(得分:3)

取消选中IB>中的半透明复选框,使Navigation Controller > NavigationBar半透明。属性检查器,它将工作。

答案 3 :(得分:0)

我也遇到了同样的问题,并且用一种完全荒谬的解决方案解决了它。

我的collectionView包含几个没有标题和项目单元格的部分。

部分插图的顶部,底部插图分别为10。 因此每个空白部分的高度均为20像素。

我有4个空白部分,因此在集合视图中有80个上边距。

如果以上解决方案均无效,则希望您也对此进行检查。

答案 4 :(得分:0)

还有另一种方法可以解决此问题,那就是选择collectionView-> scrollView内容插入->从“自动”到“从不”。

默认情况下,scrollView Content Insets值是Automatic。请检查下图。

有关更多详细信息,请检查:UIScrollView.ContentInsetAdjustmentBehavior

https://developer.apple.com/documentation/uikit/uiscrollview/2902261-contentinsetadjustmentbehavior

enter image description here