ios - uicollectionview刪除頂部填充




iphone swift (2)

您可以通過考慮以下方法之一來修復頂部填充問題。

方法1 :通過從 StoryBoard 正確設置collectionView dimensions 來自然地解決您的問題。

方法2 **Updated**

您可以在 viewDidLayoutSubviewsviewWillLayoutSubviews 驗證 collection 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的輸出:

我有一個UICollectionView,它是整個視圖,但它位於“視圖”內(它不是UICollectionViewController)。 將單元格添加到此集合視圖會在故事板中按以下順序顯示它:

這是它在模擬器中的外觀:

我不明白如何擺脫這種觀點。 對於集合視圖,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)
}

如何擺脫頂部填充?


我想因為這個viewController嵌入在navigationController中。 讓我們在故事板中選擇此viewController並取消選中 Adjust Scroll View Insets





uicollectionview