Comment appliquer CAGradientLayer que le masque d'un autre CALayer?

J'ai une vision, qui a un CALayer. Quand je crée un CAGradientLayer et de l'appliquer comme un masque de ce point de vue est CALayer, rien ne se passe. Pourquoi?

En initWithFrame: de la vue je fais ceci:

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;

Si je remplace

self.layer.mask = gradient;

avec

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

puis-je voir le dégradé. C'est du noir au blanc.

Quel est le truc?

  • Pour les autres qui luttent avec masque en dégradé, il ne fonctionnera pas si elle est appliquée à un UIStackView.
InformationsquelleAutor Proud Member | 2012-05-30