Swift — 為你的 APP 添加自定義字體

讓我們一起看看如何在你的 APP 中添加新自定義的字體吧!

Jeremy Xue
Jeremy Xue ‘s Blog
5 min readOct 4, 2020

--

Photo by Natalia Y on Unsplash

❖ 前言

在案子中碰到需要自定義字體(非內建字體)是很常見的需求,而這一次就來帶大家了解如何在專案中導入新的字體,並且將其使用在你的 UI 上吧!

❖ 添加自定義字體

你的 APP 不限於 iOS 提供的自定義字體。例如:如果你的公司具有自己的品牌字體,則你可以在你的 APP 中使用它。將包含字體的字體文件添加到你的 app bundle 中,然後以與使用 iOS 提供的任何自定義字體相同的方式使用字體。

❖ 將字體文件添加到 Xcode 專案

要將字體文件添加到 Xcode 專案,我們從選單欄中選擇 File > Add Files to “Your Project Name” 或是將文件從 Finder 拖放到 Xcode 專案中。你可以添加 True Type Font (.ttf) 以及 Open Type Font (.otf) 文件。另外,請確保字體文件是你 APP 中的目標成員(Target Member),否則字體文件將不會做為你 APP 的一部份分發。

圖片來源:Add the Font File to Your Xcode Project

❖ 在 iOS 上註冊字體

在添加字體文件到你的專案後,你需要讓 iOS 知道該字體。因此,將 key “Fonts provided by application”(raw key 名稱為 UIAppFonts) 添加到 Info.plist 中。Xcode 為該 key 創建一個數組值,將字體文件的名稱添加為數組的一個項目,確保將文件擴展名作為名稱的一部分。

來源:Register Your Font File with iOS

你添加到專案中的每個字體文件都必須在此數列中列出。否則,該字體將不適用於你的 APP 中。

❖ 在 Interface Builder 中使用自定義字體

將字體文件添加到 Xcode 專案以及 Info.plist 後,我們可以開始將字體分配給 UILabelUITextField 等 UI 物件。如果你使用的是 Interface Bulider ,請使用 Attribute Inspector 將 UI 物件的 Font 設置為自定義字體

來源:Use Your Custom Font in Interface Builder

❖ 在程式碼中使用自定義字體

你可以在程式碼中創建自定義字體的實例。因此,你需要知道字體名稱。然而,字體名稱並不總是非常明顯,並且很少與字體文件箱匹配。查詢字體名稱的一種快速方式是獲取 APP 可用的字體列表,你可以使用下列程式碼進行操作:

知道字體名稱後,請使用 UIFont 創建自定義字體的實例。如果你的應用支持動態類型(Dynamic Type),則還可以獲取字體的縮放實例,如下所示:

有關於縮放字體的更多資訊,請參閱 Scaling Fonts Automatically

❖ 後記

藉由上面內容你可以發現,在 iOS 中導入新的自定義字體並不難。只需要簡單的幾個步驟即可讓你在 Interface Builder 以及程式碼中使用。

但這邊額外補充,如果你是在程式碼中使用自定義字體的話,可以搜尋一些關於如何封裝自定義字體的方法,可能類似將自定義字體實例放在一個靜態常數上或是透過靜態方法返回字體實例等等。如此一來才更能管理在程式碼中使用到字體的部分。

這邊分享幾個關於封裝字體的相關連結:

--

--

Jeremy Xue
Jeremy Xue ‘s Blog

Hi, I’m Jeremy. [好想工作室 — iOS Developer]