191 votes

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 des coins arrondis dans 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 : c'est plutôt un rectangle simple qui ressemble exactement à mon image originale. Comment puis-je obtenir à la place une image aux coins arrondis pour représenter mon bouton ?

Merci !

440voto

devsri Points 2310

J'ai essayé la solution suivante avec UITextArea et je pense que cela fonctionnera également avec UIButton.

Tout d'abord, importez ceci dans votre fichier .m -

#import <QuartzCore/QuartzCore.h>

et ensuite dans votre loadView ajouter les lignes suivantes

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

7 votes

Fonctionne également avec l'inspecteur "Attributs d'exécution définis par l'utilisateur".

1 votes

Fonctionne aussi pour le martinet ! Il suffit de changer YES en true.

129voto

Krutarth Patel Points 2169

Vous pouvez réaliser par ce RunTime Attributes

enter image description here

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

veuillez faire attention :

dans les attributs d'exécution pour changer la couleur de la bordure, suivez cette instruction

  1. créer une classe de catégorie 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 couleur de la bordure vérifier la capture d'écran

updated answer

merci

14voto

Andrey Gordeev Points 6348

Vous pouvez consulter ma bibliothèque intitulée DCKit . Il est écrit sur la dernière version de Swift .

Vous pourriez créer un bouton/champ de texte à coins arrondis directement à partir du générateur d'interface :

DCKit: rounded button

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

14voto

Repousser les limites rayon du 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é, frame.height ou frame.width n'ont pas d'importance. Sinon, utilisez la plus grande des deux.

8voto

Ankit Solanki Points 447

Importation Cadre de travail QuartCore s'il n'est pas présent dans votre projet existant, alors importer #import <QuartzCore/QuartzCore.h> sur 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;

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