Je crée une application à l'aide de swift dans la dernière version de Xcode 6, et j'aimerais savoir comment je peux modifier mon bouton afin qu'il puisse avoir une bordure arrondie que je pourrais ajuster moi-même si nécessaire. Une fois cela fait, comment puis-je changer la couleur de la bordure elle-même sans y ajouter d'arrière-plan? En d'autres termes, je veux un bouton légèrement arrondi sans arrière-plan, seulement une bordure de 1 pt d'une certaine couleur.
232
titleEdgeInsets
.Pour faire ce travail dans le storyboard (Interface Builder Inspector)
Avec l'aide de
IBDesignable
, nous pouvons ajouter plus d'options à Interface Builder InspectorUIButton
et les modifier sur le storyboard. Tout d'abord, ajoutez le code suivant à votre projet.Ensuite, définissez simplement les attributs des boutons sur le storyboard.
la source
J'ai créé une sous-classe UIButton simple qui utilise le
tintColor
pour ses couleurs de texte et de bordure et lorsqu'elle est mise en surbrillance, change son arrière-plan entintColor
.Cela utilise une extension UIImage qui crée une image à partir d'une couleur, j'ai trouvé ce code ici: https://stackoverflow.com/a/33675160
Il fonctionne mieux lorsqu'il est défini sur le type Personnalisé dans le générateur d'interface, car le type de système par défaut modifie légèrement les couleurs lorsque le bouton est mis en surbrillance.
la source
Cette classe est basée sur tous les commentaires et suggestions dans les réponses, et peut également être conçue directement à partir de xcode. Copiez dans votre projet et insérez n'importe quel bouton UIB et modifiez pour utiliser une classe personnalisée, il vous suffit maintenant de sélectionner la couleur de la bordure ou de l'arrière-plan de xcode pour les états normaux et / ou en surbrillance.
la source
Foundation
quand importerUIKit
suffit vraiment?Sur la base de la réponse @returntrue, j'ai réussi à l'implémenter dans Interface Builder.
Pour obtenir le bouton des coins arrondis à l'aide d'Interface Builder, ajoutez une clé
Path = "layer.cornerRadius"
avecType = "Number"
etValue = "10"
(ou toute autre valeur requise) dans le "User Defined RunTime Attribute
" duIdentity Inspector
bouton.la source
Vous pouvez utiliser cette sous-classe d'UIButton pour personnaliser UIButton selon vos besoins.
visitez ce repo github pour référence
la source
Je pense que la manière la plus simple et la plus propre est d'utiliser le protocole pour éviter l'héritage et la répétition du code. Vous pouvez modifier ces propriétés directement à partir du storyboard
Mettre à jour
Dans ce lien, vous pouvez trouver un exemple avec l'utilité du protocole Traceable
la source
la source
comme astuce de côté, assurez-vous que votre bouton n'est pas une sous-classe d'une classe personnalisée dans le story-board, dans un tel cas, votre meilleur emplacement de code devrait être dans une classe personnalisée, le code à lui seul ne fonctionne que hors de la classe personnalisée si votre bouton est une sous-classe par défaut Classe UIButton et sortie de celui-ci, j'espère que cela peut aider quelqu'un à se demander pourquoi les radios d'angle ne s'appliquent pas à mon bouton à partir du code.
la source
...
Je pense que pour le rayon juste assez ce paramètre:
la source
ESSAYEZ CECI Bordure de bouton avec coins arrondis
la source
la source
Vous pouvez sous
UIButton
- classer et y ajouter des@IBInspectable
variables afin de pouvoir configurer les paramètres des boutons personnalisés via le StoryBoard "Attribute Inspector". Ci-dessous, j'écris ce code.la source
Je pense que c'est la forme simple
la source