web-dev-qa-db-fra.com

Comment arrondir les coins d'un bouton

J'ai une image rectangle (jpg) et je veux l'utiliser pour remplir le fond d'un bouton avec un coin arrondi en xcode.

J'ai écrit ce qui suit:

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];

Cependant, le bouton que j'obtiens avec cette approche n'a pas ses coins arrondis: il s'agit plutôt d'un rectangle simple qui ressemble exactement à mon image d'origine. Comment puis-je obtenir à la place une image avec un coin arrondi pour représenter mon bouton?

Merci!

166
double07

Je pense avoir compris votre problème, j'ai essayé la solution suivante avec UITextArea et je suppose que cela fonctionnera également avec UIButton.

tout d'abord importer ceci dans votre fichier .m - 

#import <QuartzCore/QuartzCore.h>

puis dans votre méthode loadView, ajoutez les lignes suivantes

    yourButton.layer.cornerRadius = 10; // this value vary as per your desire
    yourButton.clipsToBounds = YES;

J'espère que cela fonctionne pour vous et si oui, communiquez.

409
devsri

Vous pouvez atteindre par cet attribut RunTime

enter image description here

nous pouvons créer un bouton personnalisé. Voir la capture d'écran ci-jointe.

veuillez faire attention:

Les attributs d'exécution in pour changer la couleur de la bordure suivent cette instruction

  1. créer une catégorie de classe de CALayer 

  2. dans le fichier h 

    @property(nonatomic, assign) UIColor* borderIBColor;
    
  3. dans le fichier m:

    -(void)setBorderIBColor:(UIColor*)color {
        self.borderColor = color.CGColor;
    }
    
    -(UIColor*)borderIBColor {
        return [UIColor colorWithCGColor:self.borderColor];
    }
    

à partir de maintenant pour définir la capture d'écran de vérification de couleur de bordure

 updated answer

merci 

112
Krutarth Patel

Vous voudrez peut-être consulter ma bibliothèque appelée DCKit . C'est écrit sur la dernière version de Swift.

Vous pouvez créer un bouton/champ de coin arrondi directement à partir du générateur Interface:

 DCKit: rounded button

Il comporte également de nombreuses autres fonctionnalités intéressantes, telles que des champs de texte avec validation, des contrôles avec des bordures, des bordures en pointillés, des vues en cercle et en trait, etc.

14
Andrey Gordeev

En poussant les limites le rayon de coin vers le haut pour obtenir un cercle:

    self.btnFoldButton.layer.cornerRadius = self.btnFoldButton.frame.height/2.0;

 enter image description here

Si le cadre du bouton est un carré, cela n'a pas d'importance frame.height ou frame.width. Sinon, utilisez le plus grand des deux.

Importer Framework QuartCore s'il ne figure pas dans votre projet existant, importez #import <QuartzCore/QuartzCore.h> dans viewcontroller.m

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect]];
CGRect frame = CGRectMake(x, y, width, height); // set values as per your requirement
button.layer.cornerRadius = 10;
button.clipsToBounds = YES;
7
iAnkit
UIButton* closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 90, 35)];
//Customise this button as you wish then
closeBtn.layer.cornerRadius = 10;
closeBtn.layer.masksToBounds = YES;//Important
5
Vinay Mahipal

Premier ensemble largeur = 100 et hauteur = 100 du bouton 

Solution Objective C

YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;

Solution rapide 4

YourBtn1.layer.cornerRadius = YourBtn1.Frame.size.width/2
YourBtn1.layer.borderColor = UIColor.black.cgColor
YourBtn1.layer.borderWidth = 1.0
3
iOS Lifee

Si vous voulez un coin arrondi seulement à un coin ou deux, etc ... lisez ce post: 

[ObjC] - UIButton avec coin arrondi - http://goo.gl/kfzvKP

C'est une sous-classe XIB/Storyboard. Importer et définir des bordures sans écrire de code.

2
elp

mis à jour pour Swift 3:

utilisé ci-dessous le code pour faire le coin UIButton rond:

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height
2
Kiran jadhav

Pour Swift:

button.layer.cornerRadius = 10.0
2
pableiros

Une réponse alternative qui définit également une bordure (le rendant plus comme un bouton) est ici ... Comment définir une bordure rectangulaire pour le type personnalisé UIButton

1
Andy A

enter image description here

Pour objectif C :

submitButton.layer.cornerRadius = 5;
submitButton.clipsToBounds = YES;

Pour Swift :

submitButton.layer.cornerRadius = 5
submitButton.clipsToBounds = true
0
Mr.Javed Multani

Essayez mon code. Ici, vous pouvez définir toutes les propriétés de UIButton telles que la couleur du texte, la couleur de l’arrière-plan, le rayon des angles, etc.

extension UIButton {
    func btnCorner() {
        layer.cornerRadius = 10
        clipsToBounds = true
        backgroundColor = .blue
    }
}

Maintenant, appelle comme ça

yourBtnName.btnCorner()
0
iOS

Pour iOS Swift 4 

button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;
0
Jayesh Nai