iOS - welches ist die bessere Möglichkeit, Bilder zu setzen? Core Graphics (PaintCode App) und Bilddateien (Png)

8

Ich entwickle eine iOS-App, die ziemlich viele Bilder verwendet. Ich bin ziemlich verwirrt darüber, wie man die Bilder in die App lädt. Eine ähnliche Frage wurde vor etwa fünf Jahren gestellt. Aber seitdem hat sich viel verändert. Also dachte ich, es wäre sinnvoller einen neuen Thread zu starten.

Es gibt hauptsächlich zwei Möglichkeiten, die ich glaube:

  1. Verwenden Sie die PaintCode-App (hier ), die Ihnen CG-Code zum Zeichnen von Bildern zur Laufzeit zur Verfügung stellt.

  2. Legen Sie .png Bilddateien (1x, 2x, 3x)

  3. ab

Die Dinge über die erste Option sind:

%Vor%

Meine wichtigsten Anliegen sind:

  1. Beeinflusst das Zeichnen von Bildern zur Laufzeit die Leistung und andere kritische Parameter.
  2. Unter welchen Umständen würden die png-Dateien besser passen.

Also, hier bin ich und suche Meinungen von besser verständigen Leuten. Vielen Dank im Voraus.

    
harshitgupta 12.02.2016, 18:01
quelle

1 Antwort

7

Wenn die Zeichnung einfach ist - verwenden Sie Core Graphics.

Sie haben in allen Punkten, die Sie zugunsten des Core Graphics / PaintCode Ansatzes machen, Recht.

Wie Sie sagen, ist es zukunftssicher und viel flexibler als das Importieren von Assets.

  • Sie möchten die Farbe dieser benutzerdefinierten Schaltfläche ändern? Geben Sie ein anderes Argument in Ihre Funktion ein, anstatt 3 Bilder für jede Auflösung neu zu erstellen.

  • Sie möchten diese Zeichnung skalieren? Zeichnen Sie es einfach mit einer neuen Größe neu.

  • Das neue iPhone 8s erscheint irgendwann in naher Zukunft mit einem 4x Display? Ihre App kann bereits damit umgehen.

Wie Sie auch sagen, verringert sich die Größe Ihres App-Bundles, was erstaunlich ist.

  • Das ist weniger das Herunterladen für den Benutzer und weniger Sorgen über die Größenoptimierung Ihrerseits.

Allerdings.

Das Zeichnen mit Core Graphics ist zu 100% auf der CPU möglich, was sich auf die Performance auswirkt, wenn Sie zahlreiche & amp; komplexe Zeichnungen auf dem Hauptthread.

Als Sagt Tricertops , ein Paradebeispiel für eine komplexe CG-Zeichnung sind Schatten mit großen Radien. Ein anderes Beispiel sind komplizierte Pfade in Ihrem Kontext.

Verzweifeln Sie nicht, es gibt Möglichkeiten, dies zu bekämpfen!

  • Sie können eine Zeichnung außerhalb des Bildschirms für einen Hintergrund-Thread erstellen und dann das gezeichnete Bild an den Bildschirm im Haupt-Thread übergeben (Sie ) muss UI-Updates vom Hauptthread durchführen, aber dies verursacht immer noch einige Latenzprobleme (Bilder erscheinen nur aus dem Nichts auf dem Bildschirm). Dies kann jedoch eine gute Methode zum Laden komplexer Zeichnungen sein, die Sie zu einem späteren Zeitpunkt der App verwenden werden.

  • Sie können auch einige App-Startzeiten opfern, indem Sie Ihre Core-Grafikbilder laden, wenn die App geladen wird. Dies kann jedoch für den Benutzer je nach Komplexität und Anzahl der Bilder unerwünscht sein Sie müssen zeichnen.

  • Sie können Zeichnungen wiederverwenden , indem Sie häufig verwendete Bilder im Cache speichern (Schaltflächenhintergründe usw.). Dadurch wird die Leistung verbessert, indem ein wenig RAM verloren geht. PaintCode tut dies tatsächlich automatisch, wenn Sie nicht parametrisierte StyleKits verwenden .

Obwohl die iOS-Hardware viel schneller ist als das, was bei der Frage angegeben wurde, ist das die tatsächliche CPU-Auslastung Das Zeichnen von Core Graphics-Code ist viel weniger als früher, so dass Sie jetzt mit komplizierteren Zeichnungen auf schnelleren Geräten durchkommen können.

Sie können jedoch feststellen, dass einige komplexe Zeichnungen einfach unmöglich sind oder für immer in Core Graphics erstellt werden würden. In diesem Fall würde ich definitiv die Verwendung von Bildern empfehlen.

Da der Beantworter sehr eloquent den Beitrag, mit dem Sie verlinkt haben, angelegt hat:

  

Das schnellste Programm ist dasjenige, das zuerst den Markt erreicht.

Wenn Sie Wochen damit verbringen, in Core Graphics eine Zeichnung zu erstellen, ist es wahrscheinlich besser, Bilder einfach zu verwenden und diese Zeit produktiver zu nutzen!

Auch wenn Sie Ihre Zeichnung einfach halten und Zeichnungen, wo immer Sie können, wiederverwenden, sollten Sie sich bei der Verwendung von Core-Grafiken keine Gedanken über Leistungsprobleme machen.

Meiner Meinung nach überwiegen die Vorteile der Verwendung von Core Graphics / PaintCode für einfache Zeichnungen far die Nachteile, solange sie richtig verwendet werden.

    
Hamish 12.02.2016, 18:41
quelle