2014-07-21 53 views
10

我有一個collectionview,它有一個UICollectionViewFlowLayout 我把10個項目放在裏面。他們有不同的大小:UICollectionView佈局的最後一個單元格

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 

if (indexPath.row<6) { 
    CGSize retval = CGSizeMake(100, 100); 
    return retval; 
} 

CGSize retval = CGSizeMake(200, 130); 

return retval; 
} 

它像佈局: 第6個細胞好看,7-9是正確的,但最後一個不居中對齊,

enter image description here enter image description here

任何人都可以向我解釋這一點?

和怨恨天我玩集合佈局,但仍然感到困惑abt選擇 流程佈局和自定義佈局。這方面的任何原則?

許多thx提前。

+1

UICollectionView總是試圖填充儘可能多的項目,以適應行。你可以看到,在你的例子中:在圖1中,每行有3個項目的空間,但在圖像2中,只有一個圖像的空間。 現在最後一行的問題是,UICollectionView不知道,另一個項目是否會在那裏,所以它對齊到一邊,並等待下一個元素。 這是autoLayout的問題,視圖自動對齊,而不是佈局委託。 (也許這可以幫助某人解決這個問題,因爲它似乎仍然是開放的) – choli

回答

4

我遇到了類似的問題,收集視圖中的最後幾個單元格有一個難看的偏移量。在我的情況下,這是不尊重部分插頁關於項目大小的結果。

嘗試的FlowLayout的sectionInset設置爲0:

flowLayout.sectionInset = UIEdgeInsetsZero; 

如果這不起作用的流佈局似乎開溜這件事上最後幾格,你可能需要強制執行minimumInterItemSpacing:

flowLayout.minimumInteritemSpacing = 10.f;//or any reasonable number 
相關問題