將自定義字型應用於 Storyboard 中的控制元件
以下示例顯示如何將自定義字型應用於導航欄,幷包含對 Xcode 中的一些奇怪行為的修復。在將自定義字型新增到專案後,還可以使用屬性檢查器將自定義字型應用於任何其他 UIControl ,如 UILabels , UIButtons 等。請注意底部附近的工作樣本和視訊的外部連結。
- 在導航控制器中選擇導航欄
- 更改屬性檢查器中的標題字型
(在 Xcode 選擇新字型之前,你可能需要切換導航欄的 Bar Tint)
筆記(警告)
已經證實這適用於 Xcode 7.1.1+。 ( 參見下面的樣品 )
- 你需要在字型生效之前切換導航欄色調(看起來像 Xcode 中的錯誤;你可以將其切換回預設值並且字型會粘住)
- 如果選擇系統字型〜確保大小不是 0.0(否則將忽略新字型)
- 如果只有一個 NavBar 在檢視層次結構中,這似乎沒有問題。似乎忽略了同一堆疊中的輔助 NavBars。 (請注意,如果顯示主導航控制器的 navBar,則忽略所有其他自定義 navBar 設定)。
陷阱(deux)
其中一些重複,這意味著他們很可能值得注意。
- 有時故事板 xml 會被破壞。這要求你將 Storyboard 中的結構作為原始碼模式進行檢查(右鍵單擊 storyboard 檔案> Open As …)
- 在某些情況下,與使用者定義的執行時屬性關聯的 navigationItem 標記被設定為檢視標記的 xml 子標記,而不是檢視控制器標記。如果是這樣,請將其從標籤之間移除以便正確操作。
- 切換導航欄色調以確保使用自定義字型。
- 除非使用動態字型樣式,否則請驗證字型的大小引數
- 檢視層次結構將覆蓋設定。看起來每個堆疊有一種字型是可能的。
結果
http://s28.postimg.org/gvgs0lxwd/NHg_Ex.png
樣品
處理自定義字型
注意〜 可以在 Code With Chris 網站上找到一個很好的清單 ,你可以看到示例下載專案。
如果你有自己的字型並希望在故事板中使用它,那麼在以下 SO 問題上有一套不錯的答案。一個答案確定了這些步驟。
- 為你提供自定義字型檔案(.ttf,.ttc)
- 將字型檔案匯入 Xcode 專案
- 在 app-info.plist 中,新增一個名為 Fonts 的鍵,由 application.It 提供陣列型別,將所有字型檔名新增到陣列中,注意:包括副檔名。
- 在故事板中,在 NavigationBar 上轉到屬性檢查器,單擊字型選擇區域的右側圖示按鈕。在彈出式面板中,選擇字型到自定義,然後選擇嵌入字型名稱族。
自定義字型解決方法
所以 Xcode 自然看起來它可以處理 UINavigationItem 上的自定義字型,但該功能只是沒有正確更新(忽略所選字型)。
解決這個問題:
一種方法是使用故事板修復並新增一行程式碼:首先將 UIView(UIButton,UILabel 或其他一些 UIView 子類)新增到檢視控制器(不是導航項… Xcode 目前不允許進行操作那)。新增控制元件後,你可以修改故事板中的字型,並將引用新增到 View Controller 的插座中。只需將該檢視分配給 UINavigationItem.titleView 即可。如有必要,你還可以在程式碼中設定文字名稱。報告錯誤(23600285)。
@IBOutlet var customFontTitleView: UIButton!
//Sometime later...
self.navigationItem.titleView = customFontTitleView
注意 - 此示例源自我在 SO( 此處 ) 上釋出的答案。