CATiledLayer 不适用于我的 iOS5 项目

Posted

技术标签:

【中文标题】CATiledLayer 不适用于我的 iOS5 项目【英文标题】:CATiledLayer isnt working on my iOS5 project 【发布时间】:2012-01-04 17:29:34 【问题描述】:

我创建了新的单视图应用程序(使用 ios 5 sdk 和 Xcode 4.2 开发),该应用程序现在由应用程序委托、视图控制器、滚动视图(使用 CATiledLayer)组成。故事板包含ViewController,其中包含UIScrollView,哪个类是ScrollView(我创建的类)。我的目标是显示带有缩放等功能的大型 PDF 文件。我的项目基于缩放来自苹果的 pdf 样本。当我尝试在 iPad 上运行我的应用程序时,它在链接过程中崩溃,显示此错误:

Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_CATiledLayer", referenced from:
objc-class-ref in TiledPDFPage.o

那么有谁知道,如何避免这个错误?问题是否可能在于我没有在代码中而是在情节提要中创建滚动视图?

【问题讨论】:

【参考方案1】:

你记得链接 QuartzCore 框架吗?

您可能在某处有这样的导入(可能在您的TiledPDFPage.m 中):

#import <QuartzCore/CATiledLayer.h>

如果是这样,您也必须在 QuartzCore 框架中进行链接。

    在项目导航器中点击项目名称(⇧⌘J打开导航器)。 单击项目目标。 单击“构建阶段”选项卡。 打开 Link Binary With Libraries 列表。 检查QuartzCore.framework 是否已经在列表中。如果没有,请继续。 点击 +。 输入 QuartzCore。 选择QuartzCore.framework(您可能需要展开IOS 5 文件夹)。 点击添加。 构建。

【讨论】:

以上是关于CATiledLayer 不适用于我的 iOS5 项目的主要内容,如果未能解决你的问题,请参考以下文章

UITabBar 外观适用于 iOS6 但不适用于 iOS 5

我的应用程序不适用于 iOS 4.2.1

Open in... 自定义文件类型适用于 iOS 5、6 和 7,但不适用于 iOS 4

自动布局和 ios5

AlAssetsLibrary 问题,代码适用于 4.3 但不适用于 5.0

如何保持 CALayer(CATiledLayer 的子层)在缩放后不改变其比例?