Quelqu'un peut-il m'aider ici? Nouveau en tant que développeur iPhone. J'essaie d'afficher une image .png dans un cercle au lieu d'un rectangle qui est la norme pour l'iPhone
Tous les fichiers png sont des «rectangles», mais si vous souhaitez avoir l’apparence d’un cercle ou d’un autre objet non rectangle à l’écran, vous pouvez le faire en utilisant la transparence. Pour vous assurer que les pixels transparents de l'image le sont également sur l'iPhone, vous pouvez définir la couleur d'arrière-plan de UIImageView sur Clear. Cela peut être effectué dans Interface Builder en faisant glisser le curseur d'opacité dans le sélecteur de couleur d'arrière-plan jusqu'au bas de la page, .__ ou dans le code, comme suit:
UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.backgroundColor = [UIColor clearColor];
[self.view addSubview: imageView];
Si vous voulez simplement ajouter des coins plus arrondis, pour créer un cercle, vous pouvez également utiliser la propriété cornerRadius comme ceci si vous avez ajouté le framework QuartzCore à votre projet:
#import <QuartzCore/QuartzCore.h>
UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.layer.cornerRadius = image.size.width / 2;
imageView.layer.masksToBounds = YES;
[self.view addSubview: imageView];
essayez ce code
yourImageView.layer.cornerRadius = yourImageView.frame.size.height /2;
yourImageView.layer.masksToBounds = YES;
yourImageView.layer.borderWidth = 0;
cette image de spectacle comme ios 7 image de cercle merci
Ma contribution avec une extension Swift utilisée pour définir un UIImageView en tant que cercle
extension UIImageView{
func asCircle(){
self.layer.cornerRadius = self.frame.width / 2;
self.layer.masksToBounds = true
}
}
Il suffit d'appeler MyImageView.asCircle()
Utilisez un UIImageView et définissez le cornerRadius de moitié en hauteur et en largeur. view.layer.cornerRadius = cornerRadius;
Essayez ceci pour obtenir des coins arrondis de l’image et également pour colorer les coins:
self.imgView.layer.cornerRadius =self.imgView.frame.size.height/2;
self.imgView.layer.masksToBounds = YES;
self.imgView.layer.borderColor = [UIColor colorWithRed:148/255. green:79/255. blue:216/255. alpha:1.0].CGColor;
self.imgView.layer.borderWidth=2;
Condition *: la hauteur et la largeur de l'imageView doivent être identiques pour obtenir des angles arrondis.
Changer le coin de la vue de l'image fonctionne bien si vous n'avez que quelques images dans votre vue. Toutefois, si la vue de l'image se trouve dans une vue de table, les performances en seront affectées.
Quelques autres options:
Swift 4: Ceci devrait afficher votre fichier .png dans un cercle.
IBOutlet
d'une image vers votre code.cornerRadius Rayon à utiliser pour dessiner des coins arrondis pour l’arrière-plan du calque. Animable. https://developer.Apple.com/documentation/quartzcore/calayer/1410818-cornerradius
clipsToBounds, propriété Valeur booléenne permettant de déterminer si les sous-vues sont limitées aux limites de la vue. https://developer.Apple.com/documentation/uikit/uiview/1622415-clipstobounds
2.Inside viewDidLoad (), Utilisez les propriétés d'instance layer.cornerRadius
et clipsToBounds
.
profileImage.layer.cornerRadius = 50
profileImage.clipsToBounds = true
J'ajouterai une extension un peu plus universelle à UIImageView
qui fonctionnera avec des images non carrées . A noter que cela fonctionnera plus lentement que la méthode cornerRadius
.
extension UIImageView {
@IBInspectable public var asEllipse:Bool {
get {
if let mask = self.layer.mask {
return mask.name == kMaskLayerName
}
return false;
}
set {
if (newValue) {
let ellipseMask = CAShapeLayer()
ellipseMask.name = kMaskLayerName
ellipseMask.path = CGPathCreateWithEllipseInRect(self.bounds, nil)
ellipseMask.strokeColor = UIColor.clearColor().CGColor
ellipseMask.fillColor = UIColor.whiteColor().CGColor
self.layer.mask = ellipseMask
} else if self.asEllipse {
self.layer.mask = nil
}
}
}
}
private let kMaskLayerName="EllipseMaskLayer"