2012-01-26 112 views
0

在Xcode 4中,如果字體未安裝在操作系統中或未顯示在列表中,則無法通過Interface Builder設置視圖標籤的字體系列IB中的字體。爲視圖中的所有標籤設置自定義字體

由於某些視圖所有標籤使用相同的字體,我需要知道,如果有他們都設置爲相同的字體系列的一種簡單,快捷的方式,而不是將一個一個地設置其家人字體。

回答

8

您可以使用IBOutletCollection。創建一個集合並將所有標籤連接到IB。然後在代碼中使用setValue forKey。不知道它是否更有效,但你不必循環子視圖。

.h 
IBOutletCollection(UILabel) NSArray *labels; 

.m 
UIFont *newFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:14]; 
[labels setValue:newFont forKey:@"font"]; 
1

您可以遍歷所討論視圖的子視圖數組屬性中的每個條目。對於每一個,檢查它是否是UILabel(發送isKindOfClass:[UILabel class])。如果是,您可以將font屬性設置爲合適的字體對象。

+0

太好了,但那就是我不想做的事。如果沒有其他辦法可以做到這一點,我會把它... – subharb

+0

你可以嘗試iOS 5只'外觀'代理,但我找不到任何記錄的證據'UILabel'的字體屬性是外觀可代理的。我稍後會做一個實驗。 –

+0

快速瀏覽 - 沒有'UILabel'屬性被標記爲外觀代理系統支持。所以,循環一切似乎是你最好的選擇。 –

相關問題