為 iOS App 加入客製字型 (custom font)

覺得 iOS App 內建的中文字型不夠可愛嗎 ? 沒關係,我們可另外加入字型檔,在 iOS App 裡顯示我們喜愛的字型。可加到專案裡的字體檔主要有 ttf ,otf & ttc 三種格式,其中 ttc 比較容易有問題,因此建議選擇 ttf 或 otf。

接下來我們將從日本的字體網站下載可愛的粉筆字體,在 iOS App 上顯示迷死人不償命的粉筆字 !

從剛剛的網站點選紅色按鈕,下載可愛的粉筆字體。

將字體檔 crayon_1–1.tiff 加到專案裡

將字體檔 crayon_1–1.tiff 拖曳到左邊的 Project navigator 裡。

Action 選擇 Copy files to destination,它將複製字型檔到專案裡。Targets 記得勾選,如此生成 App 時才會將字型檔包進去。

ps: 如果剛剛忘了勾選 Add to targets,請再參考以下連結設定。

在 Info 頁面設定 Fonts provided by application

ps: 此步驟可跳過,因為新版 Xcode 會自動偵測我們加入的字體。不過有時 Xcode 會找不到字體,若是遇到此問題,記得再回來設定 Fonts provided by application。

切換到 Info 頁面,從右鍵選單點選 Add Row。

新增 Fonts provided by application。

在它下方的 Item 0 輸入 crayon_1–1.ttf。

之後不管在程式還是 Interface Builder,都可以指定剛剛加入的字型,Nagurigaki Crayon。

如果不知道字型的名字,可參考以下連結的說明。

方法1: 利用 Font Book

方法 2: 從程式列出所有的字型名字

for family in UIFont.familyNames.sorted() {
let names = UIFont.fontNames(forFamilyName: family)
print("Family: \(family) Font names: \(names)")
}
  • 從 SwiftUI 的程式
Text("With great power, comes great responsibility")
.font(.custom("Nagurigaki-Crayon", size: 30))
  • 從 Interface Builder

從 Font 選字體時,我們另外加入的字體會出現在最上方。

ps: 有時 Xcode 會有 bug,在 Interface Builder 找不到另外加入的字體,不過還是可以從程式設定。

  • 從 UIKit 的程式

假設 label 儲存 UILabel 物件。

label.font = UIFont(name: "Nagurigaki-Crayon", size: 30)

將 Font Book 的字體加到 iOS App

在 Xcode playground 加入客製字型

查詢系統內建的字型

參考連結

參考字型

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com