web-dev-qa-db-fra.com

Comment faire un texte souligné dans UILabel?

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?

25
Dev

Objectif c

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]}];

Rapide

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];

iOS 5.1.1 <version

Vous avez besoin de 3 party attributed Label pour afficher attributed text:

1) Reportez-vous à TTTAttributedLabel link. La meilleure tierce partie attributedLabel à display attribuée text.

2) se référer OHAttributedLabel pour un tiers attributedLabel

72
Paresh Navadiya

La façon de designer - Настраиваемая версия

Ично я предпочитаю максимально настраивать свой дизайн (ы). Иногда вы обнаружие, что использование встроенного инструмента.

En savoir plus:

1Сначала я создаю UIView для подчеркивания. Затем вы можете выбрать цвет фона в IB или программно. Ограничения являются ключевыми здесь.

Create Your Underline view

2Затем вы можете настроить подчеркивание так, как вам нравится. Например, чтобы адаптировать ширину подчеркивания для лучшего визуального эффекта, создайте выходное соединение с ограничением в Интерфейсном Разработчике

enter image description here

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:

enter image description here

4
Mick

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;

Utilisation de Xib:  enter image description here

 enter image description here

 enter image description here

 enter image description here

Nous pouvons également utiliser pour le bouton aussi.

3
Anil Gupta

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!

3
Nenad M

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 ...

2
Juan Boero

Swift 4.0

var attributeString = NSMutableAttributedString(string: "Hello Good Morning")
attributeString.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSRange)
0
Ashish