| 测试已测试 | ✗ |
| Lang语言 | Obj-CObjective C |
| 许可证 | MIT |
| Released最新版本 | 2014年12月 |
由 Peter Stuart 维护。
EPSReactiveCollectionViewController 是 UICollectionViewController 的子类,它自动填充集合视图,并通过观察模型对象的数组变化来自动化项的插入和删除动画。它使用 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.h 和 EPSReactiveCollectionViewController.m 添加到您的项目中,并按照其 安装说明 安装 ReactiveCocoa 2.2。
EPSReactiveCollectionViewController 可在 MIT 许可证下使用。有关更多信息,请查阅 许可文件。