Код: Выделить всё
Assets.xcassetsНастройка:
- У меня есть специальный Assets.xcassets в папке расширения виджета.
- Набор изображений () проверено Целевое членство для расширения виджета.
Код: Выделить всё
bg1 - Я пробовал очистить папку сборки () и многократное удаление производных данных.
Код: Выделить всё
Shift+Cmd+K
Попытка 1 (Стандартная):
Swift
Код: Выделить всё
Image("bg1")
.resizable()
// Result: Shows a placeholder/empty space.
Swift
Код: Выделить всё
private class BundleFinder {} // Dummy class to find bundle
func getWidgetImage() -> UIImage {
let bundle = Bundle(for: BundleFinder.self)
if let image = UIImage(named: "bg1", in: bundle, compatibleWith: nil) {
return image
}
print("Image not found in bundle")
return UIImage()
}
Обходной путь (что на самом деле сработало): Единственный способ отобразить изображение - это удалив его из каталога ресурсов и перетащив файл .jpg непосредственно в навигатор проекта. (в папку расширения), проверив «Копировать элементы при необходимости» и «Целевое членство».
Затем загрузка по необработанному пути работает отлично:
Swift
Код: Выделить всё
let bundle = Bundle(for: BundleFinder.self)
if let path = bundle.path(forResource: "bg1", ofType: "jpg"),
let image = UIImage(contentsOfFile: path) {
return image // This works!
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... irect-file
Мобильная версия