Comment souligner un UILabel
dans Swift? J'ai recherché ceux d'Objective-C mais je n'ai pas pu les faire fonctionner dans Swift.
ios
swift
overriding
uilabel
nsattributedstring
Esqarrouth
la source
la source
NSAttributedString
?Réponses:
Vous pouvez le faire en utilisant NSAttributedString
Exemple:
ÉDITER
Pour avoir les mêmes attributs pour tous les textes d'un UILabel, je vous suggère de sous-classer UILabel et le texte de remplacement, comme ça:
Swift 4.2
Swift 3.0
Et vous mettez votre texte comme ceci:
VIEUX:
Swift (2,0 à 2,3):
Swift 1.2:
la source
UTF16
nombre au lieu du nombre de caractères lors de la création de votre textRangeNSRange
Swift 5 et 4.2 one liner:
Doublure Swift 4 One:
Doublure Swift 3 One:
la source
Si vous cherchez un moyen de le faire sans héritage:
Swift 5
Swift 3/4
la source
UTF16
nombre au lieu du nombre de caractères lors de la création de votreNSRange
Juste une petite correction pour la réponse Shlome dans Swift 4 et Xcode 9 .
la source
UTF16
nombre au lieu du nombre de caractères lors de la création de votreNSRange
Swift 4:
1- Créez une extension de chaîne pour obtenir le texte attribué.
2- Utilisez- le
Extension:
Comment l'utiliser sur Buttton:
Comment l'utiliser sur les étiquettes:
Ou version Stoyboard
la source
Vous pouvez souligner le
UILabel
texte à l'aide d'Interface Builder.Voici le lien de ma réponse: Ajout d'un attribut souligné au texte partiel UILabel dans le storyboard
la source
Même réponse dans Swift 4.2
Pour UILable
Appel à UILabel comme ci-dessous
Pour UIButton
Appel à UIButton comme ci-dessous
J'ai examiné les réponses ci-dessus et certaines d'entre elles obligent à déballer la valeur du texte . Je suggérerai d'obtenir de la valeur en déballant en toute sécurité. Cela évitera un crash en cas de valeur nulle. J'espère que cela t'aides :)
la source
UTF16
nombre au lieu du nombre de caractères lors de la création de votreNSRange
Swift 4, 4.2 et 5.
J'ai besoin de souligner un texte particulier dans UILabel. Alors, trouvez la plage et définissez les attributs.
Production
la source
Soulignez plusieurs chaînes dans une phrase.
Utilisez de cette manière.
la source
Swift 4 changements. N'oubliez pas d'utiliser NSUnderlineStyle.styleSingle.rawValue au lieu de NSUnderlineStyle.styleSingle .
»
la source
La réponse ci-dessus provoque une erreur dans mon environnement de construction.
Cela ne fonctionne pas dans Swift 4.0:
Essayez plutôt ceci:
j'espère que cela aide quelqu'un.
la source
// Version Swift 4
la source
Vous pouvez également l'utiliser si vous souhaitez obtenir seulement la moitié de l'étiquette comme souligné: - // Pour Swift 4.0+
la source
Pour Swift 2.3
et dans ViewController
dans
ViewDidLoad
Method ou dans votre fonction, écrivez simplementil soulignera le titre de votre bouton
la source
Une classe pour définir et supprimer le soulignement pour les boutons de l'interface utilisateur pour Swift 5. J'espère que cela aide
la source