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!
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.
Vous pouvez atteindre par cet attribut RunTime
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
créer une catégorie de classe de CALayer
dans le fichier h
@property(nonatomic, assign) UIColor* borderIBColor;
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
merci
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:
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.
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;
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
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
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.
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
Pour Swift:
button.layer.cornerRadius = 10.0
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
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()
Pour iOS Swift 4
button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;