我已将SVGKit lib导入到我的项目中,我想加载我存储在NSString中的svg图像:
<svg xmlns="http://www.w3.org/2000/svg" ....
</svg>
当我尝试通过
加载它时SVGKImage* newImage = [SVGKImage imageWithContentsOfURL:svgUrl];
我得到错误,因为网址为零,这很明显,因为它不是URL,但是我可以使用库中的任何方法吗?
答案 0 :(得分:0)
您需要从URL的字符串表示创建NSURL对象,所以:
NSString *strURL = "http://......";
NSURL *imageURL = [[NSURL alloc] initWithString:strURL];
SVGKImage *svgImage = [SVGKImage imageWithContentsOfURL:imageURL];
这有帮助吗?
答案 1 :(得分:0)
你可以这样做:
NSData* svgData = [svgSource dataUsingEncoding: NSUTF8StringEncoding];
SVGKImage *svgImage = [SVGKImage imageWithData:svgData];
然而,我怀疑你应该做的是张建议的。在任何情况下,您都应确保在下载数据时从主线程中执行此操作。
答案 2 :(得分:0)
使用SVGKit 2.x,您可以使用SVGKLayeredImageView并从URL加载图像:(我在Swift Xcode 7.1中的示例代码)
转到Identity Inspector并更改该视图的自定义类 SVGKLayeredImageView (如果该类不可用且您在此处未看到它,则表示您不会导入SVGKit与我拥有的版本相同或不正确install框架
建立该视图的出口连接,然后你应该
@IBOutlet weak var svgImageView:SVGKLayeredImageView!
用法
if let url = NSURL(string: "http://your-svg-file-url"){
if url.pathExtension!.lowercaseString == "svg" {
svgImageView.image = SVGKImage(contentsOfURL: url)
}
}