Voltron 0.2.1

Voltron 0.2.1

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

Sash Zats 维护。



Voltron 0.2.1

  • 作者:
  • Sash Zats

UICollectionViewUIViewController替代cells。

Illustration

支持视图控制器封装!

安装

用法

要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install

  • #import <Voltron/Voltron.h>

  • 使用 WMLCollectionView 替代 UICollectionView,使用 WMLCollectionViewCell 替代 cells,显示视图控制器。

  • collectionView.containerViewController 设置为主持子视图控制器的视图控制器。

  • 实现数据源方法

- (UIViewController *)collectionView:(WMLCollectionView *)collectionView controllerForIdentifier:(NSString *)identifier {
    if ([identifier isEqualToString:@"Login"]) {
        return [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
    } else if ([identifier isEqualToString:@"Profile"]) {
        return [self.storyboard instantiateViewControllerWithIdentifier:@"UserProfileViewController"];
    }
}
  • 一旦显示完 cell,请调用 didEndDisplayingCell: 并传入 cell,这样给集合视图一个提示,它可以被回收。
- (void)collectionView:(WMLCollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
    [collectionView didEndDisplayingCell:cell];
}

常见问题解答

能否在WMLCollectionView中同时托管常规cells和基于视图控制器的cells?

是的。

collectionView:controllerForIdentifier:被调用的频率?

数据源方法仅在新视图控制器创建时被调用,当可能时,视图控制器就像常规cells一样被重用。

是否是在数据中配置视图控制器的好地方?

绝对不是。只有一次初始初始化,最好是放在加载视图控制器的viewDidLoad中。

要使用数据配置视图控制器,请使用 -[WMLCollectionViewCell contentViewController]

视图控制器的生命周期如何?

视图控制器的生命周期得到了保持。当视图控制器即将显示时,会触发 viewWillAppear:viewDidAppear:

一旦视图控制器从屏幕上消失,会触发 viewWillDisappear:viewDidDisappear:

性能吗?

您应该记住,在性能关键的区域,当您尝试同时显示过多的 cells 时可能会受到影响。

在填充集合视图数据时,请三思而行。例如,当播放开场过渡时,可能最好延迟显示 200 个小的 cells。

为了实现平滑滚动,请尝试延迟控制器数据的填充。

从这个意义上说,测试项目只是为了展示如何使用API,但它显然不是一个典型的从性能角度的使用场景。

为何要对collectionView:didEndDisplayingCell:forItemAtIndexPath:这么烦恼呢?

该项目旨在符合App Store的要求,因此我想要仅使用公开API来实现。

那么为什么不使用collectionView:willDisplayCell:forItemAtIndexPath:呢?

该项目旨在与iOS 7兼容。遗憾的是,上述代理方法是iOS 8+所特有的。这也是为什么你必须使用自定义的WMLCollectionViewCell来通知收集视图它即将被显示的原因。

“伏尔甘”为什么这样称呼?

我确实不知道,同时,一幅无关的图片。Illustration

许可

伏尔甘项目受MIT许可协议保护。有关更多信息,请参阅LICENSE文件。

作者

Sash Zats,[email protected]

:cow::dog: 嘛!