2014-02-28 65 views
2

我有一個基本的集合視圖,其中包含垂直滾動,各個部分中的區域和可變數量的單元格。當我需要開始下一行單元格時,我需要調整每個單元格的寬度以填充視圖的可用寬度,最多4個單元格。具有靈活寬度的UICollectionViewCell

如果一個部分有1,2,3或4個單元格,它們的寬度應分別爲視圖寬度的1/1,1/2,1/3或1/4。多於4個單元的部分應該在一行中拉伸4個單元並繼續在另一行上。

我需要爲此UICollectionViewFlowLayout子類還是我可以在UICollectionViewController類中處理它,以及如何?

enter image description here

回答

3

你應該用下面的兩種方法中的一個行更改列

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
{ 
    return UIEdgeInsetsMake(5,5,0,5); 
} 

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

    return CGSizeMake(75, 75); 
} 
+0

是的,這給了我想要的東西。謝謝。 –

0

您有UICollection視圖委託方法發揮到給一個自定義的設計CollectionCell

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { 
    return 2.0; 
} 

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { 
    return 2.0; 
} 


- (UIEdgeInsets)collectionView: 
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { 

    return UIEdgeInsetsMake(0,5,0,5); 
} 

和您可以在框架文件檢查器中設置的大小 enter image description here