Erzeugen dynamischer Kacheln für CATiledLayer

8

Ich habe die WDC2010-Session 104 für die Verwendung von scrollviews und CATiledLayers gesehen, was ziemlich cool ist. Aber ich bin mir nicht sicher über die Erzeugung der Fliesenbilder. Im Beispiel wurden die Froschkachelbilder bereits erstellt. Aber wenn ich eine Foto-App habe, in der ich meine eigenen Fotos mache, muss ich die Kacheln selbst erstellen und bin mir nicht sicher, wie ich am besten vorgehen soll.

Am einfachsten wäre es, wenn ich ein Foto mache und es speichere. Ich mache einige Bildmanipulationen und erstelle alle möglichen Kacheln, die ich brauche. Aber das bedeutet für jedes Foto, dass ich viel mehr Dateien speichere und mehr Speicherplatz benötige.

Kurz bevor ich das Foto brauche, erstelle ich die Kacheln in ein temporäres Verzeichnis. Wenn ich den Ansichtsteil beendet habe, kann ich dieses temporäre Verzeichnis löschen. Zumindest verwende ich nur den zusätzlichen Speicherplatz, wenn ich die Fotos anschaue. Aber ich wäre besorgt über das Laden des Bildes, um Fliesen zu erstellen, ob ich eine Verzögerung einführen, die für den Benutzer bemerkbar ist.

    
therealtkd 03.09.2010, 23:55
quelle

1 Antwort

1

Sie müssen die gekachelten Bilder nicht speichern. Grundsätzlich würden Sie das UIImage / CGImage basierend auf dem angezeigten Rechteck erstellen.

Ich habe etwas Ähnliches hier gemacht und es funktioniert ganz gut, der Bonus ist, dass es sehr effizient mit dem Gedächtnis ist. Ich generiere dynamisch das CGImage (die kleine Kachel aus dem großen Bild) basierend auf dem angezeigten Rechteck und der TiledLayer entfernt es aus dem Speicher, wenn es das Rect ablegt. Ich speichere das CGImage niemals in einer Datei.

Der Nachteil bei diesem Ansatz ist, dass es Latenz beim Rendern einbringt ... Nicht gut für Spiele auf einem iPhone 3G.

    
Nader Eloshaiker 24.10.2010 08:29
quelle

Tags und Links