J'utilise le bouton personnalisé dans mon application nommé "addButton" et je souhaite le bordé de couleur blanche. Comment puis-je obtenir la bordure de couleur blanche autour de mon bouton personnalisé?
ios
objective-c
iPhone
la source
la source
Réponses:
Vous pouvez définir les propriétés de bordure sur le CALayer en accédant à la propriété layer du bouton.
Tout d'abord, ajoutez Quartz
Définir les propriétés:
Voir:
https://developer.apple.com/documentation/quartzcore/calayer#//apple_ref/occ/cl/CALayer
Le CALayer dans le lien ci-dessus vous permet de définir d'autres propriétés telles que le rayon de coin, maskToBounds, etc.
Aussi, un bon article sur le plaisir des boutons:
https://web.archive.org/web/20161221132308/http://www.apptite.be/tutorial_custom_uibuttons.php
la source
CGColor
C'est très simple, ajoutez simplement l'en-tête quartzCore dans votre fichier (pour cela, vous devez ajouter le framework quartz à votre projet)
et puis fais ça
vous pouvez modifier les valeurs flottantes selon vos besoins.
prendre plaisir.
Voici un code moderne typique ...
c'est un aspect similaire aux contrôles segmentés.
Faites simplement:
la source
Et rapidement, vous n'avez pas besoin d'importer "QuartzCore / QuartzCore.h"
Utilisez simplement:
ou
la source
Le problème en définissant les calques
borderWidth
etborderColor
est que lorsque vous appuyez sur le bouton, la bordure n'anime pas l'effet de surbrillance.Bien sûr, vous pouvez observer les événements du bouton et modifier la couleur de la bordure en conséquence, mais cela semble inutile.
Une autre option consiste à créer une UIImage extensible et à la définir comme image d'arrière-plan du bouton. Vous pouvez créer un ensemble d'images dans vos images.xcassets comme ceci:
Ensuite, vous le définissez comme image d'arrière-plan du bouton:
Si votre image est une image modèle, vous pouvez définir la couleur de teinte du bouton et la bordure changera:
Maintenant, la bordure sera mise en évidence avec le reste du bouton lorsque vous la touchez.
la source
borderWidth
.Pour changer le rayon, la couleur et la largeur du bouton, je définis comme ceci:
la source
Voici une version mise à jour ( Swift 3.0.1 ) de la réponse de Ben Packard .
Le bouton résultant peut être utilisé dans votre StoryBoard grâce aux balises
@IBDesignable
et@IBInspectable
.Les deux propriétés définies vous permettent également de définir la largeur et la couleur de la bordure directement sur le générateur d'interface et de prévisualiser le résultat.
D'autres propriétés pourraient être ajoutées de la même manière, pour le rayon de la bordure et le temps de décoloration de la mise en évidence.
la source
prepareForInterfaceBuilder
n'est appelé que depuis IB, pas lorsque vous exécutez l'application. Donc, définissez également UIEdgeInsets dansawakeFromNib
, puis il s'affichera également lors de l'exécution de l'application.Vous n'avez pas besoin d'importer
QuartzCore.h
maintenant. Prise d'iOS 8 sdk et Xcode 6.1 en référence.Utilisez directement:
la source
Voici un
UIButton
sous-classe qui prend en charge l'animation d'état en surbrillance sans utiliser d'images. Il met également à jour la couleur de la bordure lorsque le mode de teinte de la vue change.Usage:
let button = BorderedButton(style: .System) //style .System is important
Apparence:
la source
Cela peut être réalisé de différentes manières dans Swift 3.0.Travaillé sur la dernière version août - 2017
Attribuez directement les valeurs de propriété borderWidth pour le bouton d'interface utilisateur:
Définir le titre avec les valeurs de couleur par défaut pour le bouton de l'interface utilisateur:
Définissez la bordure avec la couleur par défaut pour les valeurs de propriété de bordure pour le bouton d'interface utilisateur:
Définissez la couleur définie par l'utilisateur pour les valeurs de propriété de bordure du bouton d'interface utilisateur:
Utilisez la méthode Extension, de sorte que le Button tout au long de l'application aura l'air cohérent et qu'il n'est pas nécessaire de répéter plusieurs lignes de code partout.
Utilisation dans le code:
Sortie du bouton de méthode d'extension:
la source
Mettre à jour avec Swift 3
la source
**** Dans Swift 3 ****
Pour créer une bordure
Pour arrondir le coin
la source
Swift 5
Pour changer la couleur de la bordure, utilisez
la source