CALayer drawInContext vs addSublayer
Wie kann ich diese beiden in die gleiche UIView richtig?
Ich habe eine benutzerdefinierte Unterklasse CALayer, in dem ich ein Muster zu zeichnen, die innerhalb drawInContext
Habe ich einen anderen, in dem ich ein overlay PNG-Bild als Inhalt.
Habe ich eine Dritte, die nur einen hintergrund.
Wie kann ich die overlay-alle 3 diese Gegenstände?
[self.layer addSublayer:bottomLayer]; //this line is the problem
[squaresLayer drawInContext:viewContext];
[self.layer addSublayer:imgLayer];
Die anderen 2 selbst ziehen richtig wenn ich Sie in dieser Reihenfolge. Egal wo ich versuchen und bottomLayer, es immer verhindert, dass squaresLayer von der Zeichnung. Der Grund, ich brauche 3 Schichten, die ich beabsichtige zu animieren, die Farben im hintergrund und benutzerdefinierten Ebenen. Die oberste Schicht ist nur eine grafische overlay.
- Mehrere Fragen: Sind Sie sicher, dass der layer nicht gezeichnet wird? Oder ist es gezeichnet wird, aber nicht geben Ihnen die Ergebnisse, die Sie suchen? Wie die Ebenen überlagern? Ist es notwendig, diese Ebenen alle in der gleichen Ansicht, oder könnten Sie teilen eine von Ihnen in eine andere Ansicht?
- Hi, naja, Sie SOLLTEN in der Lage sein werden, in der gleichen UIView, ich nehme an, dass ich verwenden könnte, Untersichten, scheint wie ein bisschen zu viel zu verwenden separate Ansichten nur-auf-composite-Schichten. Allerdings habe ich kommen mit einer Lösung von 2 benutzerdefinierten Ebenen. Alles Hinzugefügt, zu sich selbst.layer über "addSublayer" zu ziehen scheint, auf der Oberseite des nichts gezogen über "drawInContext" die Zeichnung direkt auf den Rahmen der Ansicht .Schicht. Ok also, herauszufinden, dass heraus, dass ich nur gerendert, 2 Schichten, um zu diesem Zusammenhang und fügte hinzu, die imgLayer an der Spitze. Funktioniert einwandfrei, wie für die animation Wunde mit einem NSTimer die Ansicht aktualisieren, die läuft drawInContext.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte genauso gut fügen Sie den code in Fall, dass jemand versucht, Sie zu animieren, gestapelt CALayers, die Ihren eigenen inneren, draw-Routinen
blockViewDelegate ist, wo ich bin Speicherung, - Breite, - Höhe, - und Bild-Informationen ist der controller für diese UIView.
topLayer und bottomLayer sind benutzerdefinierte UIView-Unterklasse, die ziehen einige Formen in den Blick, die mit variabler Farb-Informationen. Später in meiner animation die ich gerade ausführen "setNeedsDisplay" wiederholt Sie mit einer Zeitschaltuhr und diese routine wiederholt wird, werden die Ebenen re-draw mit aktualisierten Parametern.