2

我正在尝试使用集合视图,并且我想支持 5.1。我没有使用故事板。我已将 collectionview 添加到我的视图控制器中。如果它的 6.0 或更高版本打开另一个视图控制器,我正在识别版本并打开集合视图。当我在 5.1 中运行我的应用程序时,它立即崩溃并出现错误:

未找到符号:_UICollectionElementKindSectionHeader

我已经看到下面的链接,它仅描述了您使用故事板时的情况。 如何在情节提要中使用 UICollectionViewController 同时仍支持 ios 5.1?

任何帮助,将不胜感激。

谢谢

4

2 回答 2

4

您确定在项目的应用程序目标中将部署目标设置为 iOS 5.1 吗?

这应该导致以下情况:

“......在早期版本中不可用的框架 API 将被弱链接......”

(来自 的快速帮助IPHONEOS_DEPLOYMENT_TARGET)。

如果它在发射时立即崩溃,听起来它不是弱链接。

如果你确定你已经设置了 iOS 5.1 的部署目标,你可以尝试强制整个 UIKit.framework 弱链接来解决问题。为此,您将其标记为可选,而不是在链接框架和库部分中的必需:

在此处输入图像描述

FWIW,我已经能够成功地完成您在 Mac OS X 应用程序中描述的操作:我有一个针对最新 SDK 构建的应用程序,在运行时检查 OS X 的版本并加载不同的 nib。在更高版本的 OS X 的 nib 中,我可以使用早期版本的 OS X 中不存在的 UI 元素。如果您的应用程序是基于 nib 的,我不明白为什么您不能这样做在 iOS 中也是如此。(请注意,如果您使用的是故事板,那就是另一回事了)。

这是一个如何设置它的示例项目:

http://www.markdouma.com/developer/CollectionViewFiagler.zip

于 2013-02-10T05:25:54.413 回答
3

iOS5 不支持 UICollectionView。您只能将它与 iOS6 应用程序一起使用。对不起,但你运气不好。

是一个开源项目,它应该可以帮助您,正如它所定义的那样:

开源,100% API 兼容替换 UICollectionView for iOS4.3+

于 2013-02-10T00:57:02.100 回答