Je peux ajouter une ombre à un calque imageView en utilisant le code suivant.Ajouter une ombre à une couche
self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test.png"]];
self.imageView.center = self.view.center;
CALayer *containerLayer= [CALayer layer];
containerLayer.shadowColor = [UIColor blackColor].CGColor;
containerLayer.shadowRadius = 10.0f;
containerLayer.shadowOffset = CGSizeMake(10.0f, 5.0f);
containerLayer.shadowOpacity = .8f;
[containerLayer addSublayer:self.imageView.layer];
[self.view.layer addSublayer:containerLayer];
1. Le problème est que je ne sais pas pourquoi je dois ajouter imageView.layer à containerLayer pour obtenir l'effet d'ombre imageView. Cependant, si j'ajoute containerLayer à imageView.layer, il n'y a pas d'ombre dans imageView, pourquoi?
Le code d'erreur est:
self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test.png"]];
self.imageView.center = self.view.center;
CALayer *containerLayer= [CALayer layer];
/*same as before*/
[self.imageView.layer addSublayer:containerLayer];
[self.view.layer addSublayer:self.imageView.layer];
Question2: du containerLayer (utilisé pour fournir l'ombre à imageView) la trame = {{0, 0}, {0, 0}}, mais la position finale est le centre de l'écran. Pourquoi?