web-dev-qa-db-fra.com

UIImage en cercle

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

21
Wilmer

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];
52
Brad The App Guy

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

28
Waseem Shah

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()

14
Kevin ABRIOUX

Utilisez un UIImageView et définissez le cornerRadius de moitié en hauteur et en largeur. view.layer.cornerRadius = cornerRadius;

UIImage coins arrondis

9
Tom Belote

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.

4
Md Rais

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:

  1. Définissez les ressources d'image en cercle sur le serveur ou manuellement si elles sont intégrées à l'application, avec des parties transparentes pour la région extérieure du cercle.
  2. Si l'arrière-plan de la vue d'image ne change pas, créez une image de superposition dont la partie du cercle intérieur est transparente et le reste identique à l'arrière-plan. Définissez également la couleur d'arrière-plan de la vue d'image sur clearColor.
  3. Lors de la réception des images, modifiez-les dans le code pour les transformer en cercle, dans un fil d’arrière-plan.
2
Peter Robert

Swift 4: Ceci devrait afficher votre fichier .png dans un cercle.

  1. Faites glisser (ctrl + clic) une IBOutlet d'une image vers votre code.

 enter image description here

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
1
Cons Bulaquena

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"
0
user3099609