Attributed String en Swift : guide complet avec exemples de code

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Attributed String en Swift : quand le texte ordinaire ne suffit pas



Avez-vous déjà remarqué pourquoi dans certaines applications le texte ressemble à une morne page grise, alors que dans d'autres, c'est une œuvre d'art ? Le secret est simple : attributed string. C'est un outil extrêmement puissant pour le développeur iOS, qui permet de contrôler chaque pixel du texte : couleur, police, espacements, ombres et même les liens interactifs.



Dans cet article, nous allons voir comment créer un NSAttributedString en Swift, comment le configurer et où l'utiliser. Vous apprendrez non seulement des faits théoriques, mais aussi des techniques concrètes qui rendront votre application plus belle et plus pratique. C'est parti !



Qu'est-ce qu'un Attributed String ? Les bases à connaître



Dans un String classique, tous les caractères sont identiques — une seule police, une seule couleur, une seule taille. NSAttributedString (et sa version modifiable NSMutableAttributedString) est une chaîne où chaque caractère ou plage de caractères peut avoir son propre ensemble d'attributs. Imaginez que vous écrivez le mot « Bonjour » : la lettre « B » est rouge et grasse, « o » est bleue et en italique, et ainsi de suite. Cela semble magique ? Non, c'est simplement un Swift attributed string.



Où cela est-il utilisé dans les applications réelles ?

  • Éditeurs de texte (gras, italique)
  • Réseaux sociaux (mentions @utilisateur cliquables et colorées)
  • Applications de chat (couleurs différentes pour différents utilisateurs)
  • Livres électroniques (polices différentes pour les titres et les citations)
  • Toute interface où le texte n'est pas seulement du texte, mais un élément de design


Comment créer un NSAttributedString en Swift : du simple au complexe



Commençons par un exemple de base. En Swift, créer un attributed string est un processus où vous définissez un dictionnaire d'attributs et l'appliquez au texte.



Exemple 1 : Attributed string très simple

import UIKit

let plainText = "Hello, Swift!"let attributes: [NSAttributedString.Key: Any] = [ .foregroundColor: UIColor.red, .font: UIFont.boldSystemFont(ofSize: 18)]let attributedString = NSAttributedString(string: plainText, attributes: attributes)

// Utilisation dans un UILabellet label = UILabel()label.attributedText = attributedString


Dans cet exemple, nous avons créé une chaîne où tout le texte est en rouge, en gras et en taille 18pt. Notez NSAttributedString.Key — c'est l'énumération de tous les attributs possibles. Il y en a des dizaines, et nous allons voir les plus utiles.



Exemple 2 : Attributs différents pour différentes parties du texte

Et c'est là que le vrai plaisir commence. Utilisons NSMutableAttributedString :

let mutableString = NSMutableAttributedString(string: "Ceci est en gras, et ceci est en rouge")

// Appliquer le gras aux 10 premiers caractèresmutableString.addAttribute(.font, value: UIFont.boldSystemFont(ofSize: 16), range: NSRange(location: 0, length: 10))

// Appliquer la couleur rouge aux 15 derniers caractèresmutableString.addAttribute(.foregroundColor, value: UIColor.red, range: NSRange(location: 14, length: 15))

// Utilisation dans un UITextViewlet textView = UITextView()textView.attributedText = mutableString


Important : NSRange fonctionne avec les positions des caractères, pas avec les index Swift. Soyez prudent, surtout avec les emojis et les caractères multi-octets.



Top 10 des attributs que vous utiliserez tous les jours



Voici la liste des clés que vous utiliserez le plus souvent lorsque vous travaillez avec NSAttributedString Swift :



  • .font — police (UIFont)
  • .foregroundColor — couleur du texte
  • .backgroundColor — fond du texte
  • .underlineStyle — soulignement (NSUnderlineStyle)
  • .strikethroughStyle — barré
  • .paragraphStyle — p

Blogs

Book Recommendations