2009-12-29 79 views
3

在iPhone通訊簿應用程序中,姓氏/公司都以粗體顯示。我想在單元格中做一些簡單的文本格式。如何格式化UITableView中的文本?

我見過使用UIWebView的一些提及,但這似乎是一個非常重的解決方案。此外,它很複雜,因爲必須修復單元格大小或進行一些特殊處理才能恢復大小。

我知道的另一種方法是手動渲染單元格。對於簡單的事情來說這可能並不難,但顯然可能會很快變得複雜。

有沒有人找到一種簡單的方法來在UITableView中獲得基本的文本格式?

回答

1

一般的答案是手動渲染單元格。是的,它很快變得複雜,但它通常是這樣做的。如果你的需求非常簡單,你可以避免爲每一部分創建單獨的UILabel,然後格式化每個部分,然後將它們排列出來,但是在大多數情況下,這很快就變得像只是自己渲染文本一樣複雜,而且幾乎總是比較慢。

NSAttributedString和相關的UIKit繪圖擴展將是iPhone的一個受歡迎的補充,但它不可用。它基本歸結爲手動渲染,或使用Web視圖。

0

好像有兩個問題,你可能會問:

  1. 你怎麼能更改項目的格式在表中?更改單元格中的textLabeldetailLabel的屬性。沒有什麼。

  2. 如何創建具有混合格式的項目(例如,通訊錄應用程序中混合的純文本和粗體文本)?標籤不這樣做,所以你必須自己做。要麼繼承UILabel以重寫它如何繪製文本,要麼直接在-[UITableViewCell drawRect:]中執行繪圖。

+0

我不問如何更改整個文本標籤的格式。我特別提到了地址簿,因爲它具有混合格式。 – brianegge 2009-12-29 03:24:26

+0

好的,這就是爲什麼我覆蓋了兩種選擇。但你的問題措辭不是很清楚,都是合理的解釋。 – 2009-12-29 15:42:58