これは単なる「レイアウト」です。つまり、viewController と collectionView を自分で提供し、これら 3 つをまとめる必要があります。
次に例を示します。 WaterfallViewController.h で
#import "UICollectionViewWaterfallLayout.h"
@interface WaterfallViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, UICollecitonViewDelegateWaterfallLayout>
@property (nonatomic, strong) UICollectionView *collectionView;
@end
そしてあなたの WaterfallViewController.m で
- (void)viewDidLoad
{
[super viewDidLoad];
UICollectionViewWaterfallLayout *layout = [[UICollectionViewWaterfallLayout alloc] init];
layout.delegate = self;
layout.columnCount = 2;
layout.itemWidth = 146;
layout.sectionInset = UIEdgeInsetsMake(9, 9, 9, 9);
_collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
_collectionView.dataSource = self;
_collectionView.delegate = self;
_collectionView.showsVerticalScrollIndicator = NO;
_collectionView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[_collectionView registerClass:[MyCell class] forCellWithReuseIdentifier:@"MyCell"];
[self.view addSubview:self.collectionView];
}
#pragma mark - UICollecitonViewDelegateWaterfallLayout Delegate
- (CGFloat)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewWaterfallLayout *)collectionViewLayout
heightForItemAtIndexPath:(NSIndexPath *)indexPath
{
// return the height for cell at indexPath.
}
ご不便をおかけして申し訳ありませんが、すぐにいくつかのサンプル コードをレポに追加します。