如何在故事板中使用UICollectionViewController,同时支持ios 5.1?

检测特定function类是否存在并根据可用性降低用户function是最佳做法。 我在storyboard中创build了UICollectionView,并创build了一个标准的tableview来支持ios 5.1用户。 然后,我只是检查用户是否有这个function,并继续适当的场景。 然而,当我现在尝试编译我的代码,我得到一个“dyld:符号未find:_UICollectionElementKindSectionHeader”这似乎是非常反模式的苹果,不允许故事板ios6.0function与ios 5.1部署目标。

if ([UICollectionView class]) { [self performSegueWithIdentifier:@"UserShow" sender:self]; } else { [self performSegueWithIdentifier:@"UserShowTable" sender:self]; } 

以上对我来说似乎是一个相当合理的方法…

你不能。 只要将集合视图控制器拖放到故事板,它就会尝试自动引用它,会导致出现编译错误。

我知道这是不正确的,只有链接的答案,但她是不可能包括整个文件。

请看这个 。

控制器被devise为提供与iOS 6的UICollectionController相同的function,但仍支持iOS 4/5

开发者在说什么

PSTCollectionView
开放源代码,100%API兼容iOS4.3 +的UICollectionView替代品

你想使用UICollectionView,但仍然需要支持iOS4 / 5? 那么你会喜欢这个项目。 我最初是为PSPDFKit编写的,我的iOS PDF框架支持文本select和注释,但是这个项目似乎有助于其他人保持它自己:)另外,我希望新的gridviews的涌入停止。 更好的办法是编写布局pipe理器,并build立一个很好的代码库。

目标是在iOS 4/5上使用PSTCollectionView作为回退,并切换到iOS6上的UICollectionView。 我们甚至使用某些运行时间技巧在运行时为较旧版本的iOS创buildUICollectionView。 理想情况下,你只需链接文件和一切在旧系统上的作品。 实际上,这并不容易,尤其是在使用UICollectionView类的子类时,因为它们在运行时不能被replace。

没有兼容性解决scheme,通过故事板6.0以前的部署,但PSTCollectionView不支持iOS 5.0 +,并积极维护。 它可以在运行时在6.0或更高版本上使用UICollectionView* ,并且应该与storyboard兼容。