最佳实践是检测某个功能的类是否存在,并根据可用性降低用户的功能。我在故事板和一个标准的表视图中创建了UICollectionView来支持iOS5.1用户。然后,我只需检查用户是否具有此功能并分割到适当的场景。然而,当我现在尝试编译我的代码时,我得到了一个"dyld: Symbol not found:_UICollectionElementKindSectionHeader“,这似乎是苹果的一种非常反模式,不允许iOS5.1部署目标的故事板中的ios6.0特性。
if ([UICollectionView class]) {
[self performSegueWithIdentifier:@"UserShow" sender:self];
} else {
[self performSegueWithIdentifier:@"UserShowTable" sender:self];
}上面的方法对我来说似乎是非常合理的……
发布于 2012-11-01 20:04:54
你不能。一旦你把集合视图控制器放到故事板上,它就会尝试自动引用它,这将导致你得到的编译错误。
发布于 2012-11-01 20:12:35
我知道这是不合适的,只把链接答案,但她,这是不可能包括整个文件。
请参阅this。
控制器旨在提供与iOS 6的UICollectionController相同的功能,但仍支持iOS 4/5
开发者在说什么?
PSTCollectionView
用于iOS4.3+的UICollectionView的100%API兼容的开源替代
你想使用UICollectionView,但还需要支持iOS4/5吗?然后你会喜欢这个项目的。我最初是为PSPDFKit编写的,我的iOS PDF框架支持文本选择和注释,但这个项目似乎对其他人有用,可以让我自己保留它:)另外,我希望阻止新的网格视图的涌入。最好只是编写布局管理器,并在一个很棒的代码库上构建。
我们的目标是在iOS 4/5上使用PSTCollectionView作为备用,并在iOS6上切换到UICollectionView。我们甚至使用某些运行时技巧在运行时为旧版本的iOS创建UICollectionView。理想情况下,您只需链接文件,所有内容都可以在较旧的系统上运行。实际上,这并不容易,尤其是当您使用UICollectionView-classes的子类时,因为它们不能在运行时被替换。
发布于 2012-11-02 14:00:50
对于通过故事板部署的6.0之前的版本,没有兼容性解决方案,但PSTCollectionView确实支持iOS 5.0+,并且正在积极维护。它可以在运行时使用UICollectionView*在6.0和更高版本上工作,并且应该与故事板兼容。
https://stackoverflow.com/questions/13176494
复制相似问题