J'utilise ContextLabel pour analyser @, # et URL. C'est la meilleure solution que j'ai trouvée, car elle taille correctement et n'affecte pas les performances. Il analyse d'abord la chaîne à l'entrée puis la convertit en NSAttributedString
et ensuite l'affecte à attributedText
propriété de UILabel
. Tout fonctionne comme prévu, sauf la troncature de la queue - c'est très incorrect (voir photo ci-dessous)
Où dois-je commencer à creuser - s'agit-il de mauvais attributs sur la chaîne attribuée? Ou un problème de disposition d'étiquette? Merci!
J'ai eu ce problème et je l'ai résolu en ajoutant un NSParagraphStyle
spécifiant le mode de saut de ligne souhaité:
//assuming myString is an NSMutableAttributedString
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingTail
let range = NSRange(location: 0, length: myString.mutableString.length)
myString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: range)
Voir Word wrap for NSMutableAttributedString pour plus de référence.
Le suivi fonctionne également indépendamment de l'utilisation de AttributedText ou de texte normal.
Assurez-vous d'ajouter la ligne ci-dessous après avoir défini le AttributedText et la police sur l'étiquette:
label.lineBreakMode = .byTruncatingTail