Set „Opazität“ eines CGLayer vor ziehen?
Frage
Ich habe UIView Unterklasse - eigentlich ein Puzzleteil -. Mit 2 verschiedenen CGLayer bei Initwithframe initialisiert
In drawRect Ich muss mischen diese zweischichtige , und die oberste sollte haben variable alpha , je nach Spiel-Logik.
Was ist die beste (Leistung optimiert) Art und Weise, dies zu tun? Gibt es eine CGLayer oder CGContext Funktion, die einige alpha setzt vor dem Ziehen?
Lösung
Stellen Sie die -opacity
der Schicht. Denken Sie daran, dass die -opaque
Einstellung der Ebene NO sein muss. Der Standardwert ist NO, aber es ist häufig aus Performance-Gründen auf YES gesetzt.
Wenn Sie bereits -drawInContext:
tun, dann können Sie mit CGContextSetAlpha()
experimentieren. Generell aber, verwenden Sie nicht -drawRect:
und Schichten zur gleichen Zeit. Sie lassen in der Regel entweder die Ansicht oder die Schichten, die die Zeichnung tun.