Il existe un moyen plus simple et plus efficace de le faire. UIImageView hérite de UIView et possède donc une propriété de couche. Vous pouvez accéder aux propriétés de l'ombre du calque et bam, vous avez une ombre.
Si vous avez l'UIImageView comme IBOutlet vers un fichier nib, vous pouvez simplement implémenter la fonction awakeFromNib. par exemple.
Objectif-C
- (void)awakeFromNib {
imageView.layer.shadowColor = [UIColor purpleColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
imageView.clipsToBounds = NO;
}
N'oubliez pas de #import "QuartzCore/CALayer.h"
Pour Swift, vous pouvez vous y prendre de plusieurs manières. Créer une extension de classe, une sous-classe ou une instance d'imageView. Quelle que soit la manière, le processus est le même pour modifier la propriété d'ombre des couches.
Swift 3
override func awakeFromNib() {
super.awakeFromNib()
imageView.layer.shadowColor = UIColor.purple.cgColor
imageView.layer.shadowOffset = CGSize(width: 0, height: 1)
imageView.layer.shadowOpacity = 1
imageView.layer.shadowRadius = 1.0
imageView.clipsToBounds = false
}
1 votes
Il est probable que vous souhaitiez utiliser les fonctions de dessin du Core Graphics pour dessiner l'ombre.
0 votes
Ces questions sont très similaires aux vôtres : stackoverflow.com/questions/962827/uiimage-shadow , stackoverflow.com/questions/1943087/