我需要創建具有不同大小(1x1,2x2,2x1,3x2.5)的單元格的UICollectionView
。我已經編碼添加單元,具體取決於他們使用的尺寸是collectionView:layout:sizeForItemAtIndexPath:
。UICollectionView中的單元格順序
我(難看)當前的代碼(self.cellSize =屏幕寬度/ 3):
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGFloat size = self.cellSize;
if (indexPath.item == 0) {
return CGSizeMake(self.cellSize * 3.f, self.cellSize * 2.5f);
}
if (indexPath.item == 1) {
return CGSizeMake(self.cellSize, self.cellSize);
}
if (indexPath.item == 2) {
return CGSizeMake(self.cellSize * 2.f, self.cellSize * 2.f);
}
if (indexPath.item == 3) {
return CGSizeMake(self.cellSize, self.cellSize);
}
if (indexPath.item == 4) {
return CGSizeMake(self.cellSize * 2.f, self.cellSize);
}
if (indexPath.item == 5) {
return CGSizeMake(self.cellSize, self.cellSize);
}
if (indexPath.item == 6) {
return CGSizeMake(self.cellSize, self.cellSize);
}
if (indexPath.item == 7) {
return CGSizeMake(self.cellSize * 2.f, self.cellSize);
}
if (indexPath.item == 8) {
return CGSizeMake(self.cellSize * 3.f, self.cellSize * 2.5f);
}
return CGSizeMake(size, size);
}
有沒有辦法指定單元格3必須在單元格1之上,但在c的左側埃爾2?
我不想做一個不會改變的靜態佈局,因爲將來每個單元的大小可能不同。例如,單元格2可能是2x1大小...
哪種方法可以做到這一點?我期待指定到UICollectionViewLayout
一個流(如「從頂部」),但它不會像這樣工作...
我認爲你必須繼承'UICollectionViewLayout',在那裏你會給每個單元格的框架。 – Larme