Modifier le texte d'un attribuées UILabel sans perdre la mise en forme?
Dans le storyboard j'disposition un ensemble d'étiquettes avec diverses options de mise en forme.
Puis-je faire:
label.text = @"Set programmatically";
Et toute la mise en forme est perdue! Cela fonctionne bien dans iOS5.
Il doit y avoir un moyen de seulement la mise à jour de la chaîne de texte sans recoder toute la mise en forme?!
label.attributedText.string
est en lecture seule.
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
Un attributedString contient l'ensemble de ses données de mise en forme. L'étiquette ne sait rien sur les formats, à tous.
Vous pourriez éventuellement stocker les attributs distincts de dictionnaire et puis, quand vous modifiez la attributedString vous pouvez utiliser:
La seule autre option est de construire les attributs à nouveau de retour.
Vous pouvez extraire les attributs d'un dictionnaire avec:
Puis ajoutez-les à nouveau avec le nouveau texte:
Ceci suppose que l'étiquette de texte, sinon vous aurez crash de sorte que vous devriez vérifier sur le premier avec:
Bien que les nouvelles à iOS programmation, j'ai rencontré le même problème très rapidement. Dans iOS, mon expérience est que
pas de travail: null attributs dictionnaire est retourné.
Ayant regardé autour de s/o, je suis tombé sur Ce Post et a suivi cette recommandation, j'ai fini par utiliser ceci: