Я изо всех сил пытаюсь получить работающий слой с содержимым изображения (представления) SVGKit в моем проекте Swift.
Когда я создаю SVGKFastImageView
с SVGKImage
из пути к файлу, я могу вывести его на экран, и svg отображается правильно.
Теперь мне нужен слой этого SVGKFastImageView
или SVGKImage
, чтобы я мог использовать его в своем редакторе, но слой всегда пуст, даже если я добавлю image.uiImage.cgImage
к layer.contents
.
У вас есть идея, как я могу решить это?
Это мой код:
let picker = FilePicker(mode: .document, viewController: vc)
picker.pick(fileExists: false, source: .view(vc.view, vc.view.bounds)) { _, result in
if case .document(let url) = result {
do {
var isDir: ObjCBool = false
if !FileManager.default.fileExists(atPath: url.path, isDirectory: &isDir) {
throw AppError.other("file does not exist")
}
if isDir.boolValue {
return
}
if url.lastPathComponent.hasSuffix("svg"), let image = SVGKImage(contentsOf: url), let imgView = SVGKFastImageView(svgkImage: image) {
UIView.animate(withDuration: 1.0, animations: {
vc.view.addSubview(imgView)
imgView.addConstraintsToMatchSuperview()
}, completion: { (done) in
let layer = CALayer()
layer.contents = imgView.image.uiImage.cgImage
vc.addLayer(layer: layer)
imgView.removeFromSuperview()
})
}
} catch {
// stuff
}
}
}