Как я могу отобразить SVG в пакете Swift?
Я пытаюсь отобразить пакет изображений внутри пакета Swift.
Этот код
let image = UIImage(named: "image", in: Bundle.module, compatibleWith: nil)
работает, когда я использую
png
изображение. Но когда я использую
svg
с таким же именем (image.svg) изображение
nil
.
Вот как я определяю папку ресурсов, в которой я сохраняю изображение.
Package.swift
resources: [
.process("Resources"),
]
2 ответа
Ваш файл или актив может быть в xcassets, добавьте xcasset в Swift Package, затем импортируйте туда свой актив, а затем введите свои ресурсы следующим образом:
resources: [Resource.process("Media.xcassets")]
Какие кассеты Media.xcasset содержат ваш актив, затем используйте этот код в Swift Package:
Image("image", bundle: .module)
Я обнаружил это, поместив каталог активов в раздел «Ресурсы» и включив его в дескриптор пакета:
.target(
name: "AppResources",
dependencies: [],
resources: [
.process("Resources")]
),
Затем я мог бы использовать расширение UIImage для доступа к своим ресурсам:
public extension UIImage {
static func packagedImage(withName name: String) -> UIImage? {
guard let result = UIImage(named: "\(name).png", in: Bundle.module, compatibleWith: nil) else {
return nil
}
return result
}
}