將自定義字型應用於 Storyboard 中的控制元件

以下示例顯示如何將自定義字型應用於導航欄,幷包含對 Xcode 中的一些奇怪行為的修復。在將自定義字型新增到專案後,還可以使用屬性檢查器將自定義字型應用於任何其他 UIControl ,如 UILabelsUIButtons 等。請注意底部附近的工作樣本和視訊的外部連結。

  1. 在導航控制器中選擇導航欄

StackOverflow 文件

  1. 更改屬性檢查器中的標題字型

StackOverflow 文件

(在 Xcode 選擇新字型之前,你可能需要切換導航欄的 Bar Tint)

筆記(警告)

已經證實這適用於 Xcode 7.1.1+。 ( 參見下面的樣品

  1. 你需要在字型生效之前切換導航欄色調(看起來像 Xcode 中的錯誤;你可以將其切換回預設值並且字型會粘住)
  2. 如果選擇系統字型〜確保大小不是 0.0(否則將忽略新字型)

StackOverflow 文件

  1. 如果只有一個 NavBar 在檢視層次結構中,這似乎沒有問題。似乎忽略了同一堆疊中的輔助 NavBars。 (請注意,如果顯示主導航控制器的 navBar,則忽略所有其他自定義 navBar 設定)。

陷阱(deux)

其中一些重複,這意味著他們很可能值得注意。

  1. 有時故事板 xml 會被破壞。這要求你將 Storyboard 中的結構作為原始碼模式進行檢查(右鍵單擊 storyboard 檔案> Open As …)
  2. 在某些情況下,與使用者定義的執行時屬性關聯的 navigationItem 標記被設定為檢視標記的 xml 子標記,而不是檢視控制器標記。如果是這樣,請將其從標籤之間移除以便正確操作。
  3. 切換導航欄色調以確保使用自定義字型。
  4. 除非使用動態字型樣式,否則請驗證字型的大小引數
  5. 檢視層次結構將覆蓋設定。看起來每個堆疊有一種字型是可能的。

結果

http://s28.postimg.org/gvgs0lxwd/NHg_Ex.png

樣品

處理自定義字型

注意〜 可以在 Code With Chris 網站上找到一個很好的清單 ,你可以看到示例下載專案。

如果你有自己的字型並希望在故事板中使用它,那麼在以下 SO 問題上有一套不錯的答案。一個答案確定了這些步驟。

  1. 為你提供自定義字型檔案(.ttf,.ttc)
  2. 將字型檔案匯入 Xcode 專案
  3. 在 app-info.plist 中,新增一個名為 Fonts 的鍵,由 application.It 提供陣列型別,將所有字型檔名新增到陣列中,注意:包括副檔名。
  4. 在故事板中,在 NavigationBar 上轉到屬性檢查器,單擊字型選擇區域的右側圖示按鈕。在彈出式面板中,選擇字型到自定義,然後選擇嵌入字型名稱族

自定義字型解決方法

所以 Xcode 自然看起來它可以處理 UINavigationItem 上的自定義字型,但該功能只是沒有正確更新(忽略所選字型)。

StackOverflow 文件

解決這個問題:

一種方法是使用故事板修復並新增一行程式碼:首先將 UIView(UIButton,UILabel 或其他一些 UIView 子類)新增到檢視控制器(不是導航項… Xcode 目前不允許進行操作那)。新增控制元件後,你可以修改故事板中的字型,並將引用新增到 View Controller 的插座中。只需將該檢視分配給 UINavigationItem.titleView 即可。如有必要,你還可以在程式碼中設定文字名稱。報告錯誤(23600285)。

@IBOutlet var customFontTitleView: UIButton!

//Sometime later...    
self.navigationItem.titleView = customFontTitleView

注意 - 此示例源自我在 SO( 此處 ) 上釋出的答案。