Wie funktioniert die Vektorunterstützung in Xcode 6?
Wenn ich versuche, die Größe eines Bildes zu ändern, sieht es gezackt aus. Was gibt es?
quelle
Wie funktioniert die Vektorunterstützung in Xcode 6?
Wenn ich versuche, die Größe eines Bildes zu ändern, sieht es gezackt aus. Was gibt es?
Sie können jetzt wie bei jeder PNG- Datei anhand des Namens auf Ihr Bild verweisen .
UIImage(named: "myImage")
Die Vektorunterstützung ist in Xcode verwirrend, denn wenn die meisten Menschen an Vektoren denken, denken sie an Bilder, die sich vergrößern und verkleinern lassen und trotzdem gut aussehen. Xcode 6 und 7 bieten jedoch keine vollständige Vektorunterstützung für iOS, sodass die Dinge etwas anders funktionieren.
Das Vektorsystem ist wirklich einfach . Es braucht Ihr .pdf
Bild, und schafft @1x.png
, @2x.png
und @3x.png
Vermögenswerte zum Erstellungszeitpunkt . (Sie können ein Tool verwenden, um den Inhalt von Assets.car zu überprüfen und dies zu überprüfen.)
foo.pdf
Angenommen , Sie erhalten ein 44x44-Vektor-Asset. Beim Erstellen werden die folgenden Dateien generiert:
[email protected]
bei 44x44[email protected]
bei 88x88[email protected]
bei 132x132Dies funktioniert für Bilder jeder Größe gleich. Wenn Sie beispielsweise bar.pdf
eine Größe von 100 x 100 haben, erhalten Sie:
[email protected]
bei 100x100[email protected]
bei 200x200[email protected]
bei 300x300
resizableImageWithCapInsets:
indem Sie Ihre Slice-Werte verwenden und durch[UIScreen mainScreen].scale
CGFloat scale = [UIScreen mainScreen].scale; UIImage *image = [[UIImage imageNamed:@"my_unsliced_asset"] resizableImageWithCapInsets:UIEdgeInsetsMake(10 * scale, 11 * scale, 12 * scale, 13 * scale)];
In Xcode 8 können Sie weiterhin ein PDF hinzufügen, einen neuen Bildsatz erstellen und im Attributinspektor die Option Skalen auf Einzelskala festlegen.
quelle
Dies ist eine Ergänzung zu der hervorragenden Antwort von @Senseful.
So erstellen Sie Vektorbilder im PDF-Format
Ich werde erklären, wie dies in Inkscape gemacht wird, da es kostenlos und Open Source ist, aber andere Programme sollten ähnlich sein.
In Inkscape:
Anmerkungen:
Wenn Sie bereits ein .svg-Bild mit der falschen Seitengröße haben, gehen Sie wie folgt vor:
Um eine .svg-Datei in eine .pdf-Datei zu konvertieren, finden Sie auch Online-Dienstprogramme, die die Arbeit für Sie erledigen. Hier ist ein Beispiel aus dieser Antwort . Dies hat den Vorteil, dass Sie die PDF-Größe einfach einstellen können.
Weiterführende Literatur
quelle
Für diejenigen, die noch nicht aktualisiert wurden, gab es Änderungen in Xcode 9 (iOS 11).
Was ist neu in Cocoa Touch (WWDC 2017 Session 201) (@ 32: 55) https://developer.apple.com/videos/play/wwdc2017/201/
Mit wenigen Worten, der Asset-Katalog enthält jetzt das neue Kontrollkästchen im Attributinspektor mit dem Namen "Vektordaten beibehalten". Wenn diese Option aktiviert ist, werden PDF-Daten in die kompilierte Binärdatei aufgenommen, wodurch sich die Größe natürlich erhöht. Für iOS besteht jedoch die Möglichkeit, die Vektordaten in beide Richtungen zu skalieren und schöne Bilder bereitzustellen (mit eigenen Schwierigkeiten). Für iOS unter 11 werden alte Skalierungsmechanismen verwendet, die in den Antworten nach oben beschrieben sind.
quelle
Mit dieser Erweiterung können Sie normale PDF-Dateien in Ihrem Projekt als Vektorbilder verwenden und Bilder jeder Größe rendern. Dieser Weg ist viel besser, da iOS keine PNG-Bilder aus Ihren PDF-Dateien generiert. Außerdem können Sie Bilder mit jeder gewünschten Größe rendern:
quelle