為 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)