Jak zastosować CAGradientLayer jako maskę innego CALayera?

Mam widok, który ma CALayer. Kiedy tworzę warstwę CAGradientLayer i stosuję ją jako maskę CALayer tego widoku, nic się nie dzieje. Czemu?

W -initWithFrame: widoku robię to:

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;

Jeśli wymienię

self.layer.mask = gradient;

z

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

wtedy widzę gradient. Jest od czerni do bieli.

Co to za sztuczka?

questionAnswers(1)

yourAnswerToTheQuestion