我使用的是UICollectionView編程的FlowLayout不滾動。UICollectionView與設置部分插圖時
我已經設置它的框架如下:
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 3000) collectionViewLayout:flowLayout];
我UICollectionViewFlowLayout
有一節插圖設置爲:
flowLayout.sectionInset = UIEdgeInsetsMake(20.0, 20.0, 100.0, 20.0);
我也只有1節。
我設置的高度是3000,看是否集合視圖會滾動,但事實並非如此。我設置它,因爲集合視圖似乎沒有向上或向下滾動時,我插入新項目。
UICollectionView
從UIScrollView
開始分類,這意味着我可以保持重置滾動視圖的內容大小。這會正常工作嗎?
唯一的問題是,如果我知道的所有項目的大小,包括許多項目是如何在每一行這樣的工作。
如果每個項目有不同的尺寸,我將如何找出每行的大小?我需要添加所有行大小並增加self.collectionView
的內容大小高度。
編輯
即使我的上述建議,重置內容的大小,不能正常工作!更新我的收藏視圖時,我嘗試了以下方法:
int numberOfRows = self.dataArray.count/3;
self.collectionView.contentSize = CGSizeMake(self.view.frame.size.width, (numberOfRows * 200) + 300);
雖然這很醜陋。這是因爲它假設我的所有圖像尺寸都是200x200px,每行適合3張圖像(因此除以3)。
而且,即使有300,我有,最後一排,我只能看到它的大約3/4,而不是它的全部。我必須滾動更多,我才能看到它,但它又回到3/4。它有點像滾動刷新,只有拖動視圖纔會移動視圖,而當您離開視圖時,視圖會回滾到原來的位置。這是爲什麼發生?難道僅僅是蘋果設計UICollectionView
如此糟糕?這有點荒謬...... UITableViews根據其內容自動調整其滾動。
這是我的解決方案。我使用的自定義流佈局刪除了多列布局中項目之間的垂直間距。直到我像西蒙建議的那樣,我只獲得了大約一半的物品。我懷疑我遇到問題的原因是查詢的項目數量是基於標準佈局的。 –