Wie wende ich CAGradientLayer als Maske eines anderen CALayers an?
Ich habe eine Ansicht, die einen CALayer hat. Wenn ich einen CAGradientLayer erstelle und ihn als Maske des CALayers dieser Ansicht anwende, passiert nichts. Warum?
In -initWithFrame: der Ansicht mache ich das:
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 ersetze
self.layer.mask = gradient;
mit
[self.layer insertSublayer:gradient atIndex:0];
dann sehe ich den gradienten. Es ist von schwarz nach weiß.
Was ist der Trick?