webentwicklung-frage-antwort-db.com.de

UIView: Opak vs. Alpha vs. Opazität

Wie arbeiten opaquealpha und die Deckkraft des Hintergrunds für eine UIView zusammen und worin bestehen die Unterschiede?

IView http://i.minus.com/jb2IP8TXbYTxKr.png

55
Besi

opaque bedeutet nicht zeichnen irgendetwas darunter, auch wenn Sie transparent sind.

Das Alpha der Hintergrundfarbe wirkt sich nur auf die Transparenz der Hintergrundfarbe aus, nicht auf andere in der Ansicht gezeichnete Elemente.

alpha wirkt sich auf alle in der Ansicht gezeichneten Elemente aus.


Die undurchsichtige Eigenschaft kann zu einer Geschwindigkeitssteigerung führen. Wenn Sie wissen, dass Ihre Ansicht niemals transparent sein wird, können Sie dies auf YES setzen. Wenn iOS Ihre Ansicht rendert, können einige Leistungsoptimierungen vorgenommen werden und machen es schneller. Wenn dies auf NO gesetzt ist, muss iOS Ihre Ansicht mit der Ansicht darunter mischen, auch wenn sie keine Transparenz enthält.

Das Alpha wirkt sich auch auf das Alpha der Hintergrundfarbe aus, d. H. Wenn die Hintergrundfarbe 0,5 transparent und das Alpha ebenfalls 0,5 ist, bewirkt dies, dass das Alpha der Hintergrundansicht 0,25 (0,5 * 0,5) beträgt.

125
deanWombourne

Zum sehr guten Antwort von deanWombourne ist es wert, hinzuzufügen, dass, es sei denn, Sie zeichnen Ihren eigenen Inhalt nicht mit der drawRect: -Methode, die opaque -Eigenschaft keine Wirkung hat.

Apple's doc :

Sie müssen nur einen Wert für die opaque-Eigenschaft in Unterklassen von UIView festlegen, die ihren eigenen Inhalt zeichnen mit drawRect verwenden : Methode. Die undurchsichtige Eigenschaft hat in vom System bereitgestellten Klassen keine Auswirkung wie UIButton, UILabel, UITableViewCell usw.

Wenn Sie Ihren eigenen Inhalt zeichnen, denken Sie daran, dass die Undurchsichtigkeit nur ein Hinweis ist

Diese Eigenschaft gibt einen Hinweis auf das Zeichnungssystem an, wie die Ansicht behandelt werden soll.

und einige weitere Richtlinien aus demselben Apple-Dokument:

Wenn die Ansicht undurchsichtig ist und ihre Grenzen nicht erfüllt oder ganz oder teilweise transparenten Inhalt enthält, sind die Ergebnisse nicht vorhersehbar. Sie sollten den Wert dieser Eigenschaft immer auf NO setzen, wenn die Ansicht ganz oder teilweise transparent ist.

9
Mikolaj