41 votes

Comment recadrer UIImage sur une forme ovale ou une forme de cercle?

Veuillez donner des idées sur la façon de recadrer UIImage sur une forme ovale ou une forme de cercle. Veuillez partager vos idées.

111voto

Rakesh Bhatt Points 3336
#import <QuartzCore/QuartzCore.h>

CALayer *imageLayer = YourImageview.layer;
        [imageLayer setCornerRadius:5];
        [imageLayer setBorderWidth:1];
        [imageLayer setMasksToBounds:YES];

en augmentant le rayon, il deviendra plus arrondi.

Tant que l'image est un carré, vous pouvez obtenir un cercle parfait en prenant la moitié de la largeur comme rayon du coin :

 [imageView.layer setCornerRadius:imageView.frame.size.width/2]; 

Vous devez également ajouter

 [imageView.layer setMasksToBounds:YES];

Rapide 4.2

 import QuartzCore

var imageLayer: CALayer? = YourImageview.layer
imageLayer?.cornerRadius = 5
imageLayer?.borderWidth = 1
imageLayer?.masksToBounds = true

13voto

Mohammad Sadiq Points 2148

Avoir imageView en forme ovale n'est pas difficile.

Vous pouvez faire ce qui suit

 UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:yourImageView.bounds];
CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
maskLayer.path = path.CGPath;
yourImageView.layer.mask = maskLayer;

Si le rect passé à bezierPathWithOvalInRect est Square, l'image sera recadrée en cercle.

Code rapide

 let path = UIBezierPath(ovalIn: yourImageView.bounds)
let maskLayer = CAShapeLayer()
maskLayer.path = path.cgPath
yourImageView.layer.mask = maskLayer

6voto

Ankit Sachan Points 1904

regarde ça http://iphonedevelopertips.com/cocoa/how-to-mask-an-image.html#comment-58842

créer un masque ovale à la place

dites-moi si vous avez également besoin d'un exemple de code

3voto

pkc456 Points 51

RAPIDE

 var vwImage = UIImageView(image: UIImage(named: "Btn_PinIt_Normal.png"))
vwImage.frame = CGRectMake(0, 0, 100, 100)
vwImage.layer.cornerRadius = vwImage.frame.size.width/2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X