测试已测试 | ✗ |
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 许可证下使用。有关更多信息,请查阅 许可文件。