我試圖創建一個UICollectionView,所有單元格100%可見,這樣我就不需要滾動來查看它們。我目前正在嘗試顯示一個3x3的網格,並在運行中計算單元格的大小。UICollectionView不滾動
我有一個容器視圖中的標題CollectionView和UIView。標題固定在容器頂部,高度爲100px。 CollectionView低於此值,固定到每一面,底部,並將其頂部固定到標題底部。
當我使用sizeForItemAt時,我試圖找到可見區域的大小,將它分成1/3大小的塊(除了填充/插入)。我的代碼如下所示:
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
let numRows = self.numRows()
let itemsPerRow = self.itemsPerRow()
// let frameSize = collectionView.frame.size
let frameSize = collectionView.bounds.size
// let frameSize = collectionView.collectionViewLayout.collectionViewContentSize
// let frameSize = collectionView.intrinsicContentSize
let totalItemPadding = self.itemPadding * (itemsPerRow - 1)
let totalLinePadding = self.linePadding * (numRows - 1)
let availableWidth = frameSize.width - totalItemPadding
var widthPerItem = availableWidth/itemsPerRow
let availableHeight = frameSize.height - totalLinePadding
var heightPerItem = availableHeight/numRows
return CGSize(width: widthPerItem, height: heightPerItem)
}
結果始終是第3行的一半左右被遮蔽的,因爲它看起來像框架尺寸爲「高」比實際顯示在模擬器。
有什麼在UICollectionView這會給我的可見大小?我在佈局時間方面錯誤的時間,還是應該添加另一種方法,在某些時候使尺寸無效?
我還沒有找到任何教程顯示所有項目的集合視圖,並且不垂直滾動,所以任何其他指針(甚至是類似這樣的庫)都將不勝感激。
謝謝!
,它必須得到一個UICollectionView?基於你的描述你想要什麼我想你會更好使用嵌套StackViews – TMin
你應該使用集合視圖中的節標題;) – John