Comment créer un texte souligné dans UILabel
?
J'avais essayé de créer une UILabel
de hauteur 0.5f et de la placer sous le texte. Cette étiquette de ligne n'est pas visible lorsque j'exécute mon application dans iPhone 4.3 et simulateur iPhone 4.3 , mais elle est visible dans simulateur iPhone 5.0 . Pourquoi?
Comment puis-je faire ceci?
iOS 6.0> version
UILabel
prend en charge NSAttributedString
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Hello Good Morning"];
[attributeString addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:1]
range:(NSRange){0,[attributeString length]}];
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Hello Good Morning")
attributeString.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSMakeRange(0, attributeString.length))
Définition:
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)aRange
Parameters List:
name: chaîne spécifiant le nom de l'attribut. Les clés d'attribut peuvent être fournies par un autre cadre ou peuvent être personnalisées. Pour plus d'informations sur l'emplacement des clés d'attribut fournies par le système, voir la section présentation générale dans Référence de la classe NSAttributedString.
valeur: valeur d'attribut associée à nom.
aRange: la plage de caractères à laquelle s'applique la paire attribut/valeur spécifiée.
Maintenant, utilisez comme ceci:
yourLabel.attributedText = [attributeString copy];
Vous avez besoin de 3 party attributed Label
pour afficher attributed text
:
1) Reportez-vous à TTTAttributedLabel link. La meilleure tierce partie attributed
Label
à display
attribuée text
.
2) se référer OHAttributedLabel pour un tiers attributed
Label
Ично я предпочитаю максимально настраивать свой дизайн (ы). Иногда вы обнаружие, что использование встроенного инструмента.
En savoir plus:
1Сначала я создаю UIView для подчеркивания. Затем вы можете выбрать цвет фона в IB или программно. Ограничения являются ключевыми здесь.
2Затем вы можете настроить подчеркивание так, как вам нравится. Например, чтобы адаптировать ширину подчеркивания для лучшего визуального эффекта, создайте выходное соединение с ограничением в Интерфейсном Разработчике
3Vous êtes le premier à donner une note Dans la liste déroulante, il y a 20 jours, il y a 20 jours, il y a 20 jours, il y a 20 minutes, puis il y a 20 minutes.
var originalString: String = "Breads"
let myString: NSString = originalString as NSString
let size: CGSize = myString.size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14.0)])
self.widthUnderlineTitle.constant = size.width + 20
Results:
J'utilise Xcode 9 et iOS 11 . Pour créer UILabel avec un soulignement dessous . Vous pouvez utiliser les deux 1. Utilisation du code 2. Utiliser xib
Utiliser le code:
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"I am iOS Developer"];
[attributeString addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:1]
range:(NSRange){0,[attributeString length]}];
lblAttributed.attributedText = attributeString;
Nous pouvons également utiliser pour le bouton aussi.
Jetez un coup d'oeil à TTTAttributedLabel . Si vous êtes autorisé à utiliser des composants tiers, remplacez simplement vos UILabels par TTTAttributedLabel où vous en avez besoin (remplacement immédiat). Fonctionne avec iOS <6.0!
Extension Swift sur UILabel:
Encore besoin d'amélioration, toutes les pensées sont les bienvenues:
extension UILabel{
func underLine(){
if let textUnwrapped = self.text{
let underlineAttribute = [NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue]
let underlineAttributedString = NSAttributedString(string: textUnwrapped, attributes: underlineAttribute)
self.attributedText = underlineAttributedString
}
}
}
L'un des inconvénients auxquels je peux penser maintenant, c'est qu'il devra être appelé à chaque changement de texte, et il n'existe aucun moyen de le désactiver ...
Swift 4.0
var attributeString = NSMutableAttributedString(string: "Hello Good Morning")
attributeString.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSRange)