Wie kann CAGradientLayer als Maske eines anderen CALayers angewendet werden?

Ich habe eine view, die hat einen CALayer. Wenn ich ein CAGradientLayer und wenden Sie es wie die Maske, die Sicht ist CALayer, passiert nichts. Warum?

In -initWithFrame: der Blick kann ich dies tun:

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil];
//[self.layer insertSublayer:gradient atIndex:0];
self.layer.mask = gradient;

Wenn ich ersetzen

self.layer.mask = gradient;

mit

[self.layer insertSublayer:gradient atIndex:0];

dann sehe ich den Verlauf. Es ist von schwarz zu weiß.

Was ist der trick?

Kommentar zu dem Problem
Für andere, die kämpfen mit verlaufsmaske, es wird nicht funktionieren, wenn es, angewendet auf ein UIStackView. Kommentarautor: Iulian Onofrei

InformationsquelleAutor der Frage Proud Member | 2012-05-30

Schreibe einen Kommentar