1

在最新一期的 iO​​S Dev Weekly 中,有一篇关于 UICollectionWaterfallLayout 的有趣文章:https ://github.com/chiahsien/UICollectionViewWaterfallLayout 如您所见,要运行示例应用程序需要执行 2 个步骤。但是,因为我是 Objective-C 和 iOS 开发的新手,所以我陷入了这些步骤。

尤其是:

第 1 步:设置这 3 个属性和 1 个委托是什么意思?我知道什么是属性和委托,但同样我不知道该怎么做。

第 2 步:如何在我的委托中实现该方法?

很抱歉有明显的问题。我正在研究 Big Nerd Ranch 的书,但我仍然在使用这个平台时遇到了麻烦。

提前谢谢大家。

4

1 回答 1

1

这只是一个“布局”,也就是说你还需要自己提供一个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.
}

很抱歉给您带来不便,我会尽快在 repo 中添加一些示例代码。

于 2012-11-26T03:04:33.373 回答