问题标签 [svgkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 尝试将 SVGKit 图像保存到 CoreData
我正在尝试构建一个 Swift 应用程序,它将查询我的 API 服务器以获取与食物相关的数据......因为有很多不同的食物可用,我只想在用户选择时将图像存储在设备上这样做。为此,我尝试使用SVGKit来侧载 SVG 图像。为了存储它们,我想使用 Core Data。我还使用SwiftyJSON来解析传入的数据。免责声明:我是 Swift 和 iOS 开发的新手。
我已经设置了 SVGKit,关于我的请求的所有其他内容似乎都可以正常工作(数据确实返回成功,并且我在存储除 SVGKImage 之外的所有内容时没有任何问题)。
以下是在函数内部并且已经有一个托管对象上下文:
这就是我设置托管对象及其保存方法的方式:
我遇到的问题是在if !context.save(nil)
我执行保存时出现以下错误:
-[SVGKImage encodeWithCoder:]:无法识别的选择器发送到实例 0x16eea720
*** -[NSKeyedArchiver dealloc]:警告:NSKeyedArchiver 在没有调用 -finishEncoding 的情况下被释放。
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[SVGKImage encodeWithCoder:]:无法识别的选择器发送到实例 0x16eea720”
我真的对内存分配知之甚少,无法诊断这一点,我最初的想法是 Swift 处理了大部分分配?无论如何,如果有人知道我能做些什么来解决这个问题,我将不胜感激!
ios - 在启用 ARC 的项目中导入非 ARC 代码编译的 .a 文件
github上有一个SVGKit是用非arc代码编译的,我得到了它的库文件,名为SVGKit.a和一些头文件。
但是,我的应用项目是在 iOS 7 及更高版本上开发的,因此默认情况下它由 ARC 管理。
我的问题是,将非 ARC 库.a
文件链接到我的项目并像往常一样使用它是否安全?如果没有,那我该如何使用它?
ios - 如何使用 SVGKImage 更改 SVG 填充颜色?
如何使用 SVGKImage 更改 SVG 填充颜色?
在这里,我找到了获取 CAShapeLayer 的简单方法
SVGKImage *svgImage = [SVGKImage imageNamed:@"test.svg"]; CAShapeLayer *thisLayer = svgImage.CALayerTree; //thisLayer 在 test.svg 中有 UIBezierPath 信息,所以,你可以用它做任何事情。
ios - 检测 SVGKit 的 SVGKImageView 子类的触摸
我已经开始SVGKit
在 iOS 上使用它。我正在使用SVGKImageView
. 现在,在子类化之前,SVGKImageView
我可以很容易地添加一个UITapGestureRecognizer
。但是我的要求使我必须使用子类,因为我必须SVGKImageView
在我的父视图上放置数十个。
(这是因为在其他视图上会有SVGKImageView
透明部分,我希望能够忽略 alpha = 0 的视图区域上的触摸,所以我希望能够检测单个触摸SVGKImageView
然后检查 alpha 值以及是否触摸在透明区域将触摸事件转发到下一个视图,依此类推,直到找到某个视图的非透明区域)
现在在子类化之后SVGKImageView
添加UITapGestureRecognizer
不起作用,这也是
在我的子类中没有调用。我也将 SVGKImageView 设置userInteractionEnabled
为 YES 但无济于事。
谁能帮助告诉我为什么没有将触摸/点击事件传递给我的
SVGKImageView
子类?
下面是我的子类init
方法
ios - 如何从 iOS (Objective-C) 中的 UITextView 的内容创建 SVG 文件?
我知道这个 SVGKit,但它的主要用途似乎是渲染现有的 SVG 文件。有没有办法可以使用它或其他任何东西从 UITextView 生成 SVG 和/或在 Objective C 中以编程方式从头开始创建 SVG?
ios - 使用 SVGKit 渲染带有嵌入 Base64 编码的 png 图像的 SVG 占用大量内存
我正在使用 SVGKit 渲染其中包含大量嵌入 Base64 编码的 png 图像的 SVG。问题是渲染需要大约一分钟,这极大地减慢了我的应用程序并使用了大量内存。总大小SVG 为 10MB,渲染时使用的内存约为 80-85 MB。有什么办法可以解决吗?
我已经尝试过缓存,但仍然出现内存问题。
ios - 如何在 iOS 中使用 SVGKit 将 SVG 路径组件解析为 UIBezierPath?
我正在使用 Swift 在 iOS 中为 SVG 图像制作动画。我已经能够使用 SVGKit ( https://github.com/SVGKit/SVGKit ) 轻松地渲染 SVG,但要对其进行动画处理,我需要将 SVG 路径元素转换为 UIBezierPath。我可以使用其他库来做到这一点,但如果我可以单独使用 SVGKit 来完成所有这些工作,那就太好了。我还没有找到任何直接的方法来获取路径元素。
ios - SVGKit 的性能,它是否应该优于 PNG?
我一直在研究 SVGKit,但我发现了相互矛盾的想法。有人说它比 PNG 慢,也有人说它快。
我希望得到建议以及我应该走哪条路线。当我将矢量图形导出为 PNG 进行显示时,使用 SVG 是否没有意义?
当然,这给出了它仍然是一个向量的附加值。
还是仍然建议将所有内容导出到 PNG ?
swift - CGPathContainsPoint 相对于绝对坐标iOS
我正在使用 SVGKit 在我的应用程序中显示不同的 SVG 内容。所需功能之一是检测在 svg 路径内的区域内发生的点击并用一些颜色填充它。
CGPathContainsPoint 似乎是这里的正确解决方案,但问题是我的 svg 路径是用相对坐标设置的(而点击点在整个图像区域内是绝对的)。
下面是我正在使用的一些代码:
填充代码有效,但点比较错误,导致没有填充或填充多个区域。
我的想法是我应该使用 CGPathContainsPoint func 的 affineTransform 参数,但是我不确定如何正确设置转换矩阵。