2

我正在尝试使用 将我的svg图像数据转换为UIImage实例SVGKit,但是当我尝试这样做时,它会崩溃,并且错误消息如下所示:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“要求将百分比值转换为不同的类型 (5)”

这是转换的svg代码UIImage

if let data = response.data {
    if let image = SVGKImage(data: data) {
       if let uiImageInstance = image.uiImage {
           self.userImageView.image = uiImageInstance
       }
    }
}

它在这条线上崩溃了

->  if let uiImageInstance = image.uiImage {

我正在使用AlamofireImage库从服务器下载我的图像数据。

我已经检查了我的svg数据是否在响应中。

仅供参考:我的图像是头像字母和渐变背景的组合。

请参阅下图以供参考。

在此处输入图像描述

我的 svg 图片示例 URL: 链接

有什么帮助吗?

提前致谢。

4

2 回答 2

2

如果您的图像使用渐变效果,那么它在 SVGKit 中将不起作用。检查您的图像是否使用任何渐变效果。

Apple 的渲染不允许我们使用 SVGKFastImageView 正确渲染此图像,因为 Apple 的 renderInContext 方法 - 根据 Apple 的文档 - 忽略了 Apple 自己的遮罩层。在 Apple 修复此错误之前,您应该对这个特定的 SVG 文件使用 SVGKLayeredImageView(或避免使用渐变)

于 2017-09-27T13:48:32.950 回答
0

请执行以下操作:

  1. 首先,检查response.data(它是您期望的正确格式吗?)
  2. 尝试使用image.UIImage而不是image.uiImage
于 2017-09-25T13:18:46.640 回答