Comment ajouter de l'ombre à un cercle UIImageView ou UIView?
Je suis en train de faire un cercle UIImageView
et il fonctionne. Ci-dessous est la façon dont j'utilise pour le faire:
[self.pic.layer setMasksToBounds:YES];
[self.pic.layer setCornerRadius:50.0];
Je voudrais ajouter de l'ombre à la UIImageView
. Le code ci-dessous ne ajouter un peu d'ombre à mon image vue, toutefois, l'affichage de l'image change de forme carrée. Quelqu'un peut-il me donner quelques conseils pour résoudre ce problème? Ci-dessous le code que j'ai utiliser pour ajouter de l'ombre:
self.pic.layer.shadowColor = [UIColor purpleColor].CGColor;
self.pic.layer.shadowOffset = CGSizeMake(0, 1);
self.pic.layer.shadowOpacity = 1;
self.pic.layer.shadowRadius = 1.0;
self.pic.clipsToBounds = NO;
source d'informationauteur Newbie
Vous devez vous connecter pour publier un commentaire.
Utiliser le
CALayer
'sshadowPath
de la propriété et ajouter unUIBezierPath
avec arrondi rectMODIFIER
Pour un carré-ish d'affichage de l'image de cette technique ne fonctionne pas directement, parce que, comme vous l'avez dit, l'affichage de l'image remonte à carré. Raison: Vous définissez
clipsToBounds = NO
pour montrer l'ombre qui supprime l'écrêtage pour le rayon de l'angle, oùimageView
est sous-vue decontainer
.Solution de contournement:
Ajouter votre imageview dans un conteneur de vue, puis appliquer la couche de l'ombre à ce conteneur. Voici le code que j'ai essayé.
L'effet qui en résulte est, comme indiqué dans la capture d'écran,
Espère que ça aide!
Sans un conteneur, mais avec un arrière-plan de la vue ici est mes 2 cents
Comme rapide 2.2 extension
Au cas où quelqu'un cherche Swift 3 ou 4 travail solution:
Parfois vous devez également définir les contraintes de l'image à l'intérieur du conteneur, mais il peut fonctionner sans elle aussi, dans certains cas. Mais si c'est pas le cas, ajoutez ceci:
essayer ce code...