2017-05-30 43 views
13

UICollectionView很奇怪的問題...小的差距在UICollectionView部分出現

我有一個UICollectionView低於UIImageView,我注意到有在collectionView出現在某些點多髮際線/ 1px的線條清晰......一個出現一個描述單元下面...

first

假設它是與細胞出了問題,我已經調查了一切辦法我能想到的,沒有喜悅。我已經翻倍了這個小區來說明這個問題發生在之間IndexPath部分1項目6和7

即使該電池彎了腰......分隔線單元下面是相同的一部分section所以它絕對不是頁腳或頁眉?

second

我的FlowLayout是

flowLayout.scrollDirection = .vertical 
flowLayout.minimumInteritemSpacing = 0.0 
flowLayout.minimumLineSpacing = 0.0 
flowLayout.sectionInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0) 
flowLayout.headerReferenceSize = .zero 
flowLayout.footerReferenceSize = .zero 

我做了collectionView紅色的背景以突出的問題......我沒有什麼線索的問題。

視圖層次

view

更新

改變flowLayout.minimumLineSpacing = 0.0-1.0「修復」的問題在一些地方......爲什麼不將此值仍沿所有單元格是否準確?並保持在0.0 ??

flowLayout.scrollDirection = .vertical 
flowLayout.minimumInteritemSpacing = 0.0 
flowLayout.minimumLineSpacing = -1.0 
flowLayout.sectionInset = .zero 
+0

這個問題是出現在模擬器還是真實設備上? –

+0

它出現在兩個可悲的...我希望這只是模擬器,但唉,不是。 – Magoo

+0

你可以請還包括視圖的層次? (從UI查看器捕獲或通過遞歸描述:方法) –

回答

9

我只走了,把一個300賞金上它後,解決它... ..小時

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

// calculated CGSize... 

    return CGSize(width:collectionView.bounds.size.width,height:ceil(calculatedHeight) 

} 

記得@ 2倍3倍@總是小區您的計算單元... UICollectionViews沒本事0.5分

1

要在添加到@Magoo的答案:

CGSize結構有時使用代表距離矢量,而不是物理尺寸。作爲一個向量,它的值可能是負值。爲了規範CGRect結構,使其大小由正值表示,請調用標準化函數。

在斯威夫特2.x中,你將需要使用:

return CGSizeMake(width:collectionView.bounds.size.width,height:ceil(calculatedHeight) 

隨着斯威夫特3,你可以不再使用CGSizeMake

return CGSize(width:collectionView.bounds.size.width,height:ceil(calculatedHeight) 
  • ceil功能UP數字舍入到如果需要,最近的整數。
  • 舍入時你有floor