98 votes

IOS: créer un UIImage ou UIImageView avec des coins arrondis

Est-il possible de créer un UIImage ou un UIImageView avec des coins arrondis? Parce que je veux prendre un UIImage et le montrer à l'intérieur d'un UIImageView , mais je ne sais pas comment le faire.

233voto

yinkou Points 3809

Oui c'est possible.
Importez l'en-tête QuartzCore ( #import <QuartzCore/QuartzCore.h> ) et jouez avec la propriété layer du UIImageView .

 yourImageView.layer.cornerRadius = yourRadius;
yourImageView.clipsToBounds = YES;
 

Voir la référence de la classe CALayer pour plus d'informations.

54voto

I Like IOS Points 488

Essayez ce code pour une image ronde pour une structure simple QuartzCore de créer une image ronde

 imageView.layer.backgroundColor=[[UIColor clearColor] CGColor];
imageView.layer.cornerRadius=20;
imageView.layer.borderWidth=2.0;
imageView.layer.masksToBounds = YES;
imageView.layer.borderColor=[[UIColor redColor] CGColor];
 

entrez la description de l'image ici

47voto

Savas Adar Points 616
-(UIImage *)makeRoundedImage:(UIImage *) image 
                      radius: (float) radius;
{
  CALayer *imageLayer = [CALayer layer];
  imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height);
  imageLayer.contents = (id) image.CGImage;

  imageLayer.masksToBounds = YES;
  imageLayer.cornerRadius = radius;

  UIGraphicsBeginImageContext(image.size);
  [imageLayer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  return roundedImage;
}

9voto

uiimageview.layer.cornerRadius = uiimageview.frame.size.height/2;
uiimageview.clipToBounds = YES;

#import <QuartzCore/QuartzCore.h>

0voto

dig Points 1622

C'est possible, mais je vous conseillerai de créer une image png transparente (masque) avec des coins arrondis et de la placer sur votre image avec UIImageView. C'est peut-être une solution plus rapide (par exemple, si vous avez besoin d'animations ou de défilement).

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