J'ai une application qui intègre de nombreux boutons ronds. Cependant, dans xcode 5, ceux-ci n'existent pas. Comment puis-je récupérer les boutons ronds? Ils sont essentiels à mon application. Maintenant, il ne s'agit que de texte pressable. Que fais-je? Je prévois de publier cette application plus tard, si cela est pertinent.
Plus le nombre est élevé, plus les angles sont arrondis. 50 est un cercle pour un bouton standard (ou largeur/2). Vous ne verrez pas le changement dans le storyboard, mais il sera affiché au moment de l'exécution.
Voici une réponse similaire à celle que j'ai donnée à cette question:
-MODIFIER-
Ajouter: #import <QuartzCore/QuartzCore.h>
au sommet de votre .h
fichier.
Si vous voulez des coins arrondis, juste ctrl-drag
du bouton à votre .h
fichier, appelez-le comme roundedButton
et ajoutez-le dans votre viewDidLoad
:
CALayer *btnLayer = [roundedButton layer];
[btnLayer setMasksToBounds:YES];
[btnLayer setCornerRadius:5.0f];
Pour rendre le bouton blanc (ou toute autre couleur), sélectionnez l'inspecteur d'attributs et faites défiler jusqu'à la section View
, sélectionnez Arrière-plan et remplacez-le par Blanc:
La même chose peut être réalisée par programme. Où myView est un objet IBOutlet.
myView.layer.cornerRadius = 5;
myView.layer.masksToBounds = YES;
Définissez une image d’arrière-plan sur vos boutons avec les bordures souhaitées, en utilisant une image extensible.
Vérifiez ce lien pour un bon exemple: Stretch background image for UIButton
OU, adoptez la nouvelle interface utilisateur iOS7 et supprimez les frontières ... ;-)
Swift 2.0:
let sampleButton = UIButton(frame: CGRectMake(100,100,200,100))
sampleButton.titleLabel?.text = "SAMPLE"
sampleButton.backgroundColor = UIColor.grayColor()
//Setting rounded boarder
sampleButton.layer.cornerRadius = 10
sampleButton.layer.borderWidth = 1
sampleButton.layer.borderColor = UIColor.blackColor().CGColor
self.view.addSubview(sampleButton)
Dans Swift 3: nous pouvons l'ajouter viewdidload
button.layer.cornerRadius = 0.5*button.bounds.size.width
button.clipsToBounds = true