我需要一個UICollectionView
來顯示一個網格,該網格在寬度和高度上都可能比可見框更大,同時保持行和列的完整性。默認UICollectionViewFlowLayout
允許部分可以在屏幕外滾動,但它會將某些部分中的項目包裝在屏幕上,以便將我的網格固定在屏幕上。防止UICollectionView中的項目「打包」
認識到UICollectionView
是UIScrollView
一個子類,我嘗試了手動設置集合視圖的內容大小屬性在viewDidLoad中:
self.collectionView.contentSize = CGSizeMake((columns * (cellWidth + itemSpacingX), (rows * (cellHeight + itemSpacingY));
但是,這並沒有影響。問題:
- 有沒有一種簡單的方法來實現這一點,而不建立自定義佈局?
- 使用自定義佈局並覆蓋
collectionViewContentSize
方法能否成功獲取集合視圖來停止包裝項目並向兩個方向滾動? - 如果我必須建立一個自定義佈局 - 我必須投入一些時間來學習 - 我可以繼承
UICollectionViewLayout
,還是繼承UICollectionViewFlowLayout
保存時間?
更新: 我試圖嵌入UICollectionView作爲UIScrollView的子視圖。集合視圖本身的行爲是正確的 - 這些行不包含在滾動視圖的邊緣,告訴我它正在填充我設置的UIScrollView內容大小。但是,滾動視圖不會在水平方向上平移,即它只是垂直滾動,而集合視圖本身無論如何都會自動滾動。所以再次卡住。響應者鏈可能存在問題嗎?
'self.layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;'得到了這份工作爲我做的。我想知道這是否適合你的情況。 –