Я пытаюсь загрузить образ .svg. Обычно для изображения .png я просто делаю что-то вроде:
let task = session.dataTask(with: url) { data, response, error in
if let data = data, error == nil {
if let img = UIImage(data: data as Data) {
self.cachedImages[surl] = img
completion(img)
}
}
}
task.resume()
Однако это не работает для меня для файла .svg, и поэтому у меня возникла идея сначала загрузить файл .svg в wkwebview, который никогда не отображается на экране, и моментальный снимок его для создания файла .png, с которым я могу работать. Перед созданием моментального снимка придется подождать, пока содержимое полностью загрузится, что обычно обрабатывается методом делегата didFinishNavigation wkwebview. делегировать протокол. Если кто-то хочет сделать снимок экрана, можно использовать метод делегата didFinishNavigation.
func webView(_ webView: WKWebView,
didFinish navigation: WKNavigation!)
{
var snapshotConfiguration = WKSnapshotConfiguration()
snapshotConfiguration.snapshotWidth = 1440
webView.takeSnapshot(with: snapshotConfiguration) { (image, error) in
guard let image = image,
error == nil else {
return
}
}
}
В этом конкретном случае использования wkwebview в контроллере просмотра нет места - и эта обработка изображения выполнена в классе коммунальных услуг. Можно ли использовать этот метод делегирования без использования контроллера представления?
В качестве альтернативы, есть ли другой способ загрузить файл .svg?
Спасибо за любые предложения