最近打算使用swift和SVGkit做一个app,遇到了好多状况,对于初学者的几个概念,一个是静态库,第二个是oc和swift混编,第三个是xcode6b4的类库不齐全.
首先是SVGKit的GitHub的地址https://github.com/SVGKit/SVGKit,谷歌一下,百度一下都能找到,然后下载整个svgkit的项目。
好了接下来我们按照正常的swift创建我们的项目,然后我们按照我们的GitHub的要求(Build the static library),这里我就不翻译了其实很简单的,创建了我们的静态库.a文件以及usr文件夹,这里注意一定要按照GitHub上的选择“Debug-universal”的文件夹里面的文件,否则会出错,选择iphone或者模拟器的文件都不能够完整的运作。做完GitHUb的步骤,这里另外要注意 我的Xcode6b4的类库不完整类似CoreText都没有,后来更新到了Xcode6beta5才正常了,这里建议大家都更新到最新的Xcode6beta5。
第三个步骤是关于我们的oc与swift混编了,这个网上也有,我这里贴出截图和代码来给大家看一下。
新建一个.h 的文件作为“桥梁” ,
我命名为OCHeader.h然后 我们到 build setting里面进行设置,注意路径,如果建在某个文件夹下面的,要把文件夹名称带上,xxx/xxx.h否则会报错
然后,我们在这个OCHeader.h设置我们要导入的一些类
#ifndef svgtest_OCHeader_h #define svgtest_OCHeader_h #import "SVGKit.h" //这就是我要添加的SVGKit的类,方便我的swift直接调用 #import "SVGKImage.h" //同上 #endif
一次添加全局的swift都可以直接使用,
然后我在我的ViewControler中写我们的代码把
我先设置了一个button让其点击后加载我的svg格式的文件,svg格式的文件事先导入到了我的项目。
import UIKit //cnblog里面没有swift 将就一下用了c的模板 代码里面对比了oc的例子指导代码,我们可以看到很多不同点。 class ViewController: UIViewController { @IBOutlet var firstview: UIView! @IBAction func showsvgbuttonclic(sender: AnyObject) { var svgim:SVGKImage=SVGKImage(named: "Rsimplified.svg") //SVGKImage* newImage = [SVGKImage imageNamed:@"myImage.svg"]; var svgimview=SVGKLayeredImageView(SVGKImage: svgim) //SVGKImageView* imageView = [[SVGKLayeredImageView alloc] initWithImage:newImage]; firstview.addSubview(svgimview) //[self.view addSubView: [[SVGKLayeredImageView alloc] initWithImage:newImage]; NSLog("showsvgbuttonclick") }