EPSReactiveCollectionViewController 1.0.1

EPSReactiveCollectionViewController 1.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最新版本2014年12月

Peter Stuart 维护。



  • Peter Stuart

EPSReactiveCollectionViewControllerUICollectionViewController 的子类,它自动填充集合视图,并通过观察模型对象的数组变化来自动化项的插入和删除动画。它使用 ReactiveCocoa,并设计用于与 MVVM 模式一起使用。

EPSReactiveTableViewController 为表视图控制器提供类似的功能。

使用说明

继承 EPSReactiveCollectionViewController,并编写一个 init 方法,在该方法中调用 initWithCollectionViewLayout:bindingToKeyPath:onObject:super 上设置绑定。键路径的值必须始终是一个包含实现 -isEqual:-hash 的对象的 NSArray。数组中不应出现任何对象多于一次。在 init 方法中,为包含在观察数组中的对象类注册单元格类。(cell class 必须遵守 <EPSReactiveCollectionViewCell>.)

- (id)init {
    UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout new];
    layout.itemSize = CGSizeMake(60, 60);
    layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);

    EPSExampleViewModel *viewModel = [EPSExampleViewModel new];

    self = [super initWithCollectionViewLayout:layout bindingToKeyPath:@"sortedObjects" onObject:viewModel];
    [self registerCellClass:[EPSColorSwatchCell class] forObjectsWithClass:[EPSColorSwatch class]];
    ...
    return self;
}

如果您想了解单元格何时被点击,请订阅 didSelectItemSignal 属性。

[self.didSelectItemSignal subscribeNext:^(RACTuple *tuple) {
    RACTupleUnpack(id object, NSIndexPath *indexPath, UICollectionView *collectionView) = tuple;
    // Do something with `object`
}];

您不需要编写任何 <UICollectionViewDataSource> 方法。

有关如何使用 EPSReactiveCollectionViewController 的更完整的示例,请参阅 示例项目

要运行示例项目,请克隆仓库,然后首先从项目目录运行 pod install

需求

EPSReactiveCollectionViewController 需要 ReactiveCocoa 2.2 或更高版本。

安装

EPSReactiveCollectionViewController 可以通过 CocoaPods 获取,要安装它,只需将以下行添加到您的 Podfile 中

pod "EPSReactiveCollectionViewController"

或者,将 EPSReactiveCollectionViewController.hEPSReactiveCollectionViewController.m 添加到您的项目中,并按照其 安装说明 安装 ReactiveCocoa 2.2。

许可证

EPSReactiveCollectionViewController 可在 MIT 许可证下使用。有关更多信息,请查阅 许可文件