2009-06-08 13 views
3

ich eine UILabel verwende meinen Text zu zeigen, in einem mehrzeiligen und UILineBreakModeWordWrap-Modus und die maximale Breite beträgt 200.
Zum Beispiel, hier ist der Text:Wie kann ich einen Teil des Textes wie iPhone SMS unterstreichen?

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

Und ich will "zu unterstreichen erstes Wort "und" zweites Wort ".

Wenn der Text im Single-Line-Modus mit der SizeWithFont-Methode von NSString angezeigt wird, kann ich einfach die Position von "erstes Wort" berechnen und dann überschreiben - (void) drawTextInRect: (CGRect) rect, um die Linie zu zeichnen .

Aber im Multi-Line-Modus weiß ich nicht, wie man die Position bekommt. Hast du irgendeine Idee?

Antwort

6

Es gibt eine ganze Reihe von Diskussionen über den fehlenden NSAttributedString auf dem iPhone und die Leute fangen an, eigene Textlayout-Systeme zu bauen, um das zu umgehen. Es gibt einige Projekte in diesem Bereich. Vielleicht möchten Sie sich die Three20 project und ihre TTStyledTextLabel ansehen.

+0

TTSstyledTextLabel ist genau das, was ich wollte. Vielen Dank. – Neng

5

Verwenden Sie ein UIWebView, um Ihren Text anzuzeigen. Das empfiehlt Apple für Rich Text.

+0

Ja, UIWebView kann definitiv mein Problem lösen, aber wäre es nicht zu schwer, nur einen Satz zu zeigen? – Neng

+0

Ich habe dieses Gefühl auch über UIWebView. Aber das ist es, was Apple empfiehlt. Siehe meine zweite Antwort. –

+0

Apple empfiehlt? Können Sie bitte das Zitat zeigen? – 3lvis

Verwandte Themen