Wiem, że to nowa funkcja i może nie być to możliwe, ale chciałbym mieć możliwość korzystania z katalogu zasobów do organizowania moich zasobów, ale mam dostęp do wszystkich moich obrazów w sposób programowy. Jak mam teraz uzyskać dostęp do moich obrazów? Czy nadal uzyskuję do nich dostęp po nazwach plików, na przykład:
[UIImage imageNamed:@"my-asset-name.png"];
Wygląda na to, że katalog zasobów nie odwołuje się do rozszerzenia, więc czy wydajniej byłoby uzyskać do niego dostęp bez pliku „.png”?
Powodem, dla którego pytam zamiast testować na sobie, jest to, że nawet po usunięciu zasobów i katalogu zasobów, a następnie wyczyszczeniu folderu kompilacji, nadal mogę uzyskać dostęp do swoich zasobów w mojej aplikacji. Uniemożliwia mi to testowanie katalogu zasobów, gdy go wdrażam.
Po przejrzeniu katalogu zasobów znalazłem plik „Contents.json” dla każdego zasobu i jest on sformatowany w następujący sposób:
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "[email protected]"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Nadal nie jestem pewien, jak mam uzyskać do niego dostęp, ale może to pomoże?
źródło
UIImage
. Z tego, co widziałem, nie, ponieważ każdy obraz kategorii w grupie może być zupełnie innym obrazem, więc nie będą dostępne żadne ogólne informacje, takie jak krojenie. A może coś mi brakuje?UIImage(named: imageName)
Apple dodał również nowy sposób uzyskiwania obrazu z zasobów za pomocą Swift 3, nazywa się on `` Image Literal '' i działa jak poniżej:
źródło
Szybki
Możesz uzyskać odniesienie do obrazu w katalogu zasobów za pomocą
Nie musisz dołączać rozszerzenia.
źródło
@RileyE ma 100% racji. Jednak z moich doświadczeń warto również zauważyć, że czasami odniesienie do katalogu zasobów dla obrazu może zawierać końcowe białe znaki. Prawdopodobnie nie zauważysz, jeśli użyjesz scenorysów / xibs, ponieważ autouzupełnianie doda je. Ale kiedy odwołujesz się do tego z kodu, nie jest tak oczywiste, na czym polega problem.
źródło