2012-03-21 43 views
8

我愛能夠使用外觀代理在我的iOS5應用定製NavigationController UI元素的全系統,但是:替代外觀代理表格單元格的UILabel setfont程序

我有很多的嵌套我的應用程序中的表格,其中我希望能夠跨所有表格單元格更改字體。它們主要是靜態創建的。我已經將一些單元格生成放入類中,從一個數組中讀取,但主要問題在於我在Interface Builder中創建了大量內容部分。 IB似乎沒有用於批量字體設置的選項。

我想知道是否有人可以幫助我找到一種方式來設置所有的UITableCell字體一氣呵成?

也許是這樣的:

[[UILabel appearance] setFont:[UIFont fontWithName:@"Times" size:17.00]; 

回答

8

您可以使用appearanceWhenContainedIn:來縮小其UIViews你想設置的外觀。

在您的例子,嘗試:

[[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil] 
      setFont:[UIFont fontWithName:@"Times" size:17.00]]; 
+0

非常感謝 - 專注於特定元素的好方法 - 感謝您的反饋! – Sarreph 2012-06-08 19:22:33

+0

經過與同事長時間的熱烈討論後,他正確地告訴我,UILabel(其中包括*對* appearanceWhenContainedIn *作出響應的類)不符合UIAppearance協議,所以即使這可能工作,沒有證件,因此不被依賴)。 – NSTJ 2013-07-22 01:27:34

+0

@NSTJ'UILabel'繼承自'UIView',符合'UIAppearance'; ergo'UILabel' *符合'UIAppearance' ~~,並且這種方法可能依賴於~~。 – Austin 2014-05-02 13:16:48

2

當然沒有。使用UIAppearance來設計UILabel是無效的。見my self-answered question here。它有點不錯,但它不是有效的,因爲那裏列出的原因。