Frage

Ich habe einen Bildschirmschoner für Leopard gebaut, die Kern-Animation verwendet. Es tut nichts zu kompliziert; verwendet einen Baum von CALayers und CATextLayers eine „Tabelle“ von Daten in der folgenden Struktur zu erzeugen:

- root
  › maincontainer
    › subcontainer
      › row [multiple]
        › cell [multiple]
          › text layer

Bei den meisten gibt es 50 CALayers auf dem Bildschirm zu jeder Zeit gemacht werden.

Nachdem ich die „Tabelle“ erstellt hat, ich hinzufüge, Animieren den „Unter-Containers“ in Sicht CABasicAnimation verwenden. Noch einmal, ich bin nichts Besonderes zu tun -. Nur ein einfaches Fade-In

Das Problem ist, dass, während die Animation passiert das seine painful zu beobachten. Es ist ruckartig auf meiner Entwicklungsmaschine, die einen 3,06 GHz iMac mit 4 GB RAM ist, und scheint die Animation in 10 Schritten zu hacken, anstatt eine allmähliche Veränderung zeigt.

Es wird noch schlimmer auf dem ppc mac-mini ist der Bildschirmschoner gezielt für; sie weigert sich, auch die Animation zu spielen, in der Regel „Tweens“ von Anfang der Animation (0% Opazität) auf halbem Weg (50%) dann abgeschlossen wird.

Ich bin relativ neu in Objective und meine Erfahrung basiert Garbage Collection-Umgebungen auf, aber ich kann nicht glauben, dass ich an der Stelle genügend Speicher bin undicht der Screensaver startet um solche Probleme zu verursachen.

Auch ich bin ganz sicher, es ist nicht ein Problem mit der Hardware. Ich habe die Einbau-Bildschirmschoner getestet, die Kern-Animation verwenden und heruntergeladen ein paar Vergleich kostenlos CA-basierte, und sie laufen ohne Probleme auf beiden Maschinen.

Informationen ziemlich dünn auf Google ist in Bezug auf die Verwendung von CA in Bildschirmschoner, oder CA was das betrifft im Allgemeinen verwendet und Beratung / Tutorials auf Profilierung / Bildschirmschoner beunruhigen scheint nicht existent zu sein. So dass jede Hilfe der Gemeinschaft zur Verfügung stellen kann, würde auch begrüßt werden!

--- UPDATE ---

Es scheint, als ob implizite Animationen glatt Dinge helfen, ein wenig aus. Noch ein bisschen abgehackt, aber nicht so schlimm, wie zu versuchen, alles mit expliziten Animationen wie in meiner Lösung zu animieren.

War es hilfreich?

Lösung

Es gibt nicht viele Besonderen Bildschirmschoner. Ich nehme an, Sie haben damit begonnen, mit dem Core Animation Programming Guide ? es durch Instrumente ausführen, werden Sie eine Menge Informationen geben, wo Sie zu viel Zeit einnehmen.

Der Code verwenden Sie die Fade-in zu tun, wäre nützlich. Für das, was Sie beschreiben, brauchen Sie nicht einmal CABasicAnimation; Sie können nur die animierbaren Eigenschaften der Schichten eingestellt, und sie standardmäßig belebter. Stellen Sie sicher, Sie haben auf Implizite Animationen . Der Rest dieser Seite ist wahrscheinlich die Verwendung als gut.

Die meisten Ihrer Arbeit in Coreanimation aus dem Weg. Ich weiß im Allgemeinen, was es tut, und die meisten Probleme kommen von der zweiten, es zu versuchen zu raten, es zu sagen, zu viel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top