2009-06-08 12 views
3

-je utiliser un UILabel pour montrer mon texte, dans un mode multi-ligne et UILineBreakModeWordWrap, et la largeur maximale est 200.
Par exemple, voici le texte:Comment puis-je souligner une partie du texte comme iPhone SMS?

I really really want to underline first word and second word, could you help me?

Et je veux souligner " premier mot "et" deuxième mot ". Si le texte est affiché en mode mono-ligne, avec la méthode sizeWithFont de NSString, je peux facilement calculer la position du "premier mot" puis redéfinir - (void) drawTextInRect: (CGRect) rect pour tracer la ligne .

Mais en mode multiligne, je ne sais pas comment obtenir la position. Avez-vous une idée?

Répondre

6

Il ya beaucoup de discussion sur le NSAttributedString manquant sur l'iPhone et les gens commencent à construire leurs propres systèmes de mise en page de texte pour contourner ce problème. Il y a des projets dans ce domaine. Vous voudrez peut-être regarder le Three20 project et son TTStyledTextLabel.

+0

TTStyledTextLabel est exactement ce que je voulais. Merci beaucoup. – Neng

5

Utilisez un UIWebView pour afficher votre texte. C'est ce que Apple recommande pour le texte enrichi.

+0

Oui, UIWebView peut définitivement résoudre mon problème, mais ne serait-ce pas trop lourd de montrer une phrase? – Neng

+0

J'ai aussi ce sentiment sur UIWebView. Mais néanmoins, c'est ce que recommande Apple. Voir ma deuxième réponse. –

+0

Apple recommande-t-il? Pouvez-vous montrer la citation, s'il vous plaît? – 3lvis