web-dev-qa-db-fra.com

UIlabel layer.cornerRadius ne fonctionne pas dans iOS 7.1

Je suis actuellement en train de regarder un UILabel avec la propriété addMessageLabel.layer.cornerRadius = 5.0f; Sur un appareil sur lequel iOS 7.0 est installé, ses coins sont arrondis. Sur un appareil sur lequel iOS 7.1 est installé, les coins ne sont pas arrondis.

Est-ce juste un bug avec iOS 7.1?

177
Mike V

Définissez la propriété clipsToBounds sur true

addMessageLabel.clipsToBounds = true
465
Raheel Sadiq

Je pense que la meilleure façon de définir le rayon de coin est:

enter image description here

et assurez-vous que "Clip Subviews" est coché:

enter image description here

Vérifier "Clip Subviews" est égal au code addMessageLabel.clipsToBounds = YES;.

64
Allen

Ajoutez les deux lignes ci-dessous et vérifiez-le.

[[addMessageLabel layer] setCornerRadius:5.0f];
[[addMessageLabel layer] setMasksToBounds:YES];

OR

[addMessageLabel setClipsToBounds:YES];
22
Tapas Pal

Mon problème était un peu différent.

Alors que je faisais faire btn.clipsToBounds = true

Je ne me préparais pas

btn.layer.cornerRadius = 20

Parce que j'avais différentes tailles d'écran. Au lieu de cela, j'ai suivi this répondre et j'ai:

override func layoutSubviews() {
    seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}

Cela ne fonctionnait pas parce que j'avais oublié d'ajouter super.layoutSubviews(). Le code correct est:

override func layoutSubviews() {
    super.layoutSubviews()
    seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}
4
Honey

J'ai essayé le ci-dessous et j'ai eu une sortie réussie.

yourlabelname.layer.cornerRadius = 10.0f;
[yourlabelname setClipsToBounds:YES];

Y a-t-il autre chose qui vous en empêche?

3
Mano Rajendran

J'utilise la version Xcode 10.1 (10B61). Pour les vues, il affiche la propriété Corner Radius sur Interface Builder Itself. Lorsque cette option est définie, elle n'est pas directement reflétée sur le story-board. Mais peut voir les changements sur votre application !!!

enter image description here

0
BharathRao
 //works perfect in Swift 2.0 for a circular or round image          


@IBOutlet var theImage: UIImageView!
        override func viewDidLoad() {
            super.viewDidLoad()
    //Make sure the width and height are same
            self.theImage.layer.cornerRadius = self.theImage.frame.size.width / 2
            self.theImage.layer.borderWidth = 2.0
            self.theImage.layer.borderColor = UIColor.whiteColor().CGColor
            self.theImage.clipsToBounds = true

        }
0
Naishta
yourlabelname.layer.cornerRadius = yourlabelname.frame.size.width/2;
[yourlabelname setClipsToBounds:YES];

Assurez-vous de vérifier avec la cible de déploiement appropriée.

0
iAmita Singh