2010-04-26 33 views
2

我需要在這樣的標籤來格式化文本:一個標籤,兩種不同的字體?

用戶名:從這個用戶的一些文字。這將創建額外的文本行
,這些文本將繼續在
之上。

其中「username」是粗體。這將進入UILabel,它位於自定義表格單元格中。有沒有辦法得到這種類型的佈局?

回答

2

對於這個相對簡單的情況,您可能會僞造它。用粗體用戶名錶示一個標籤,用純文本標記在同一位置。在純文本之前插入足夠的空格爲用戶名留出空間。您可以使用UIStringDrawing方法來測量粗體文本和空格。

CGSize usernameSize = [theUsername sizeWithFont:theBoldUsernameFont]; 
CGSize spaceSize = [@" " sizeWithFont:thePlainCommentFont]; 
NSString *indentedComment = [NSString stringWithFormat:@"%*s%@" , (int)ceil(usernameSize.width/spaceSize.width) , "" , theComment]; 
+0

你知道,就在你發佈之前,這正是我開始做的。這只是計算用戶名文本中空格的數量的問題。 – 4thSpace 2010-04-27 03:56:52

1

如果使用普通UILabel,則不可用。爲此任務使用兩個標籤。

+0

如何獲得包含兩個標籤的用戶名標籤下的包裝? – 4thSpace 2010-04-26 14:29:53

0

您需要使用UIWebView或CoreText來完成這種高級文本佈局。 Web視圖有很多開銷,但是最靈活,並且不能在UITableView單元中有效地使用它。 CoreText是低層次的,沒有很好的文檔。你可以放棄表格視圖,只需在Web視圖中用CSS和HTML佈局表格,這就是我的做法。

0

您仍然可以使用UITableViewCell,但讓單元格使用UIWebView子視圖。使用聰明的setter方法設置自定義單元格子類,使您可以將nsstrings發送到該方法,並將它們轉換爲相當格式化的視圖。

相關問題