Ich weiß, dass es sich um eine neue Funktion handelt, die möglicherweise nicht möglich ist. Ich würde jedoch gerne einen Asset-Katalog verwenden, um meine Assets zu organisieren, aber ich greife programmgesteuert auf alle meine Bilder zu. Wie würde ich jetzt auf meine Bilder zugreifen? Greife ich immer noch über ihre Dateinamen wie folgt auf sie zu:
[UIImage imageNamed:@"my-asset-name.png"];
Scheinbar verweist der Asset-Katalog nicht auf die Erweiterung. Wäre es also effizienter, ohne ".png" darauf zuzugreifen?
Der Grund, den ich frage, anstatt selbst zu testen, ist, dass ich auch nach dem Entfernen meiner Assets und des Asset-Katalogs und dem anschließenden Bereinigen des Build-Ordners auf meine Assets in meiner Anwendung zugreifen kann. Dies hindert mich daran, den Asset-Katalog zu testen, wenn ich ihn implementiere.
Nachdem ich den Asset-Katalog durchgesehen hatte, fand ich die "Contents.json" für jedes Asset und es ist wie folgt formatiert:
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "[email protected]"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Ich bin mir immer noch nicht sicher, wie ich darauf zugreifen soll, aber vielleicht hilft das?
quelle
UIImage
. Und nach allem, was ich gesehen habe, nein, da jedes Kategoriebild in der Gruppe ein völlig anderes Bild sein kann, sind keine allgemeinen Informationen wie das Schneiden verfügbar. Oder fehlt mir etwas?UIImage(named: imageName)
Außerdem hat Apple mit Swift 3 eine neue Methode zum Abrufen von Bildern aus Assets hinzugefügt. Es wird als "Image Literal" bezeichnet und funktioniert wie folgt :
quelle
Schnell
Sie können einen Verweis auf ein Bild in Ihrem Asset-Catelog mit erhalten
Sie müssen die Erweiterung nicht einschließen.
quelle
@ RileyE ist 100% richtig. Aus meinen Erfahrungen geht jedoch auch hervor, dass die Asset-Katalogreferenz für das Bild manchmal nachgestellte Leerzeichen enthalten kann. Sie werden es wahrscheinlich nicht bemerken, wenn Sie Storyboards / Xibs verwenden, da die automatische Vervollständigung dies hinzufügt. Wenn Sie jedoch aus dem Code darauf verweisen, ist das Problem nicht so offensichtlich.
quelle