SVGKit
SVGKit 是一个用于本地渲染 SVG 文件的 Cocoa 框架:它速度快,功能强大。有关更多信息和其他链接,请参阅维基百科 https://github.com/SVGKit/SVGKit/wiki
我们有一个 Twitter 账号 http://twitter.com/SVGKit_free,您可以在那里关注发布信息,或发推文进行联系(请通过“问题页面”而不是发推文来报告任何错误)。
版本
最新信息在:https://github.com/SVGKit/SVGKit/wiki/Versions
- v2.x = 当前“开发中”分支,包含最新的更改、修复和功能
- 注意:当您访问 SVGKit 的项目页面时,GitHub 会将此分支自动选择为“默认”分支
入门
运行iOS示例
注意:2015年4月:新的示例应用程序,功能更多,可能存在一些初期问题。
- 打开 "Demo-iOS.xcodeproj",并在模拟器或设备上运行它。尝试不同的SVG。放大、平移,并且(只有在使用Monkey的情况下)点击“动画”按钮。点击图片以查看边界框/击中检测(可能需要先点击Debug按钮)
- 如果您在构建库并嵌入到您的应用中遇到任何问题,请将您的构建设置与Demo-iOS的构建设置进行比较 - 如果有所不同,可能就是问题所在。
安装(将SVGKit添加到您的应用中)
安装SVGKit时有3种主要选项
- 将.framework文件拖放到您的项目中 <-- 建议使用/推荐
- 使用CocoaPods
- 使用Carthage
- 将静态库拖放到您的项目中,并配置项目中的构建设置
注意:静态库是我们向后兼容的、始终有效的手动安装方式,如果您在使用CocoaPods或Framework时遇到问题,可以使用此方法。但其他两种方法要快得多/简单。
使用框架 - 拖放即可!
- 打开 "SVGKit-iOS.xcodeproj"
- 构建项目一次
- 在项目导航器中,展开“Products”文件夹
- 将SVGKit.framework拖放到您的应用项目中
注意:框架是Xcode中使用库的首选方式。但是,这是一个新特性,可能存在错误。如果您有任何问题,请创建一个Issue,但也尝试下面提到的静态库方法
您还可能需要手动将以下Apple框架添加到您的应用中
- CoreText
- CoreImage
- libxml2.dylib
- QuartzCore
- CoreGraphics
- UIKit
您还可能需要将以下第三方框架添加到您的应用中(包含在SVGKit中)
- CocoaLumberjack(在SVGKit-iOS项目中,选择“3rd-party-frameworks”文件夹,并将所需的版本拖放到项目中:iOS、tvOS等)请记住嵌入库(应在目标 -> 一般 -> 集成二进制中显示)
使用 CocoaPods
CocoaPods 是 CocoaTouch 的依赖管理器。要进行 CocoaPods,请在您的 podfile 中添加以下内容
pod 'SVGKit'
还建议您设置 podfile 以从 2.x 分支获取 SVGKit。
pod 'SVGKit', :git => 'https://github.com/SVGKit/SVGKit.git', :branch => '2.x'
使用 Carthage
Carthage 是 Cocoa 的分布式依赖管理器。要使用 Carthage,请在其 Cartfile 中添加以下内容
github 'SVGKit/SVGKit'
还建议您设置 Cartfile 以从 2.x 分支获取 SVGKit。
github "SVGKit/SVGKit" "2.x"
构建静态库
直到 2016 年,这一直是将 SVGKit 交付的方式。
我们有一个构建脚本,它将自动一次性构建库的所有版本,并将其作为一个单独的文件交付:http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4/3647187#3647187
一切都已经设置好了,您只需执行以下操作
- 打开 "SVGKit-iOS.xcodeproj",切换到 "SVGKit-iOS" 目标并构建它(cmd-B)
- 在左侧导航栏中,滚动到最底部,并打开 "Products" 部分标题
- 在库("libSVGKitBLAHBLAH.a")上右键单击,并选择 "Show in Finder"(显示在Finder中)
- 向上一级文档
- 选择 "Debug-universal"(或如果您是在发布模式下构建,则为 "Release-universal")文件夹
- 将 .a 文件和 "usr" 文件夹拖到您的项目中(勾选 "Copy files"(复制文件)复选框)
- 在构建设置中,选择 "Other Linker Flags"(其他链接器标志)并添加 "-ObjC"
- 编辑您的构建设置并将 "C/C++ Compiler Version"(C/C++ 编译器版本)设置为 "LLVM Compiler 2.0"(LLVM 编译器 2.0)
- 添加以下所有框架和第三方库列表(转到 "Build Phases",然后 "Link Binary with Libraries"(链接二进制文件与库))
- CoreText
- CoreImage
- libxml2.dylib
- QuartzCore
- CoreGraphics
- UIKit
其他一切自动完成。
用法 - OS X
SVGKit 从 2.1.0 版本开始支持 macOS。
您可以使用类似 iOS 的几乎相同的 API。包括 SVGKFastImageView
、SVGKLayeredImageView
,您还可以使用 SVGKImage.NSImage
将 SVG 层导出为位图图像。
我们也为SVGKit提供macOS演示。要运行示例,请打开 Demo-OSX.xcodeproj
并构建以运行。您可以使用这两种不同类型的视图来浏览不同的SVG文件,以检查兼容性。
SVGKit使用方法指南
这里是关于如何使用SVGKit的一些帖子,包括如何使用各种方法及原因。
-
入门指南,加上新特性:http://t-machine.org/index.php/2012/12/31/svgkit-2013-usage/
-
常见使用的快速指南:http://t-machine.org/index.php/2013/01/02/svgkit-2013-recipes/
- 额外:如何在屏幕上缩放SVG图像:http://t-machine.org/index.php/2013/04/14/svgkit-scaling-svg-images/
-
为项目做出贡献,核心架构:http://t-machine.org/index.php/2012/12/31/svgkit-2013-development/
-
(2013年11月):新(实验性)特性 - 将SVG写入磁盘,保留任何通过程序所做的更改:http://t-machine.org/index.php/2013/11/17/svgkit-programmatic-editing-of-svg-files-on-ios/
我遇到了一个带有“未识别的选择器”崩溃?
如果您遇到此错误
"+[NSCharacterSet SVGWhitespaceCharacterSet]: unrecognized selector sent to class "
... 您可能正在构建静态库,但忘记了以下步骤
"编辑您的构建设置并在“Other Linker Flags”中添加“-ObjC”