Почему я не могу преобразовать данные `svg` в UIImage, используя`SVGKit` в Swift 4?

Я пытаюсь преобразовать мой svg данные изображения для UIImage пример использования SVGKit, но когда я пытаюсь сделать это, его сбой, и сообщение об ошибке, как показано ниже:

Завершение работы приложения из-за неперехваченного исключения "NSInternalInconsistencyException", причина: "Запрошено преобразовать значение Percentage в другой тип (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 данные есть в ответе.

К вашему сведению: мое изображение представляет собой сочетание букв аватара и градиентного фона.

Смотрите ниже изображение для справки.

URL-адрес моего изображения svg: ссылка

Любая помощь?

Заранее спасибо.

2 ответа

Решение

Если ваше изображение использует эффект градиента, то оно не будет работать в SVGKit. Проверьте, использует ли ваше изображение какой-либо эффект градиента.

Рендеринг Apple НЕ ПОЗВОЛЯЕТ США правильно отображать это изображение с помощью SVGKFastImageView, поскольку метод renderInContext от Apple, согласно документам Apple, игнорирует собственные маскирующие слои Apple. Пока Apple не исправит эту ошибку, вы должны использовать SVGKLayeredImageView для этого конкретного файла SVG (или избегать использования градиентов)

Пожалуйста, сделайте следующее:

  1. Прежде всего, проверьте response.data(это правильный формат, который вы ожидаете?)
  2. Попробуйте использовать image.UIImage вместо image.uiImage
Другие вопросы по тегам