IOS添加自定義字體
字體是軟件開發中個性化的一個重要元素,系統自帶了很多豐富的字體,但有時候並不能滿足個性化的需求,這時候可以向工程中添加自定義的系統字體,然後就可以像使用系統字體一樣使用。字體文件最常用的為ttf等格式。
導入自定義字體過程很簡單:添加資源包到工程->在info.plist文件中注冊字體->在工程Bundle Resource中復制字體資源包->代碼檢測查詢加入的字體並使用
添加資源包
addFile添加字體資源包或者直接將字體包拖到工程資源文件夾下:
info.plist文件中注冊字體
在工程的info.plist屬性列表中添加Fonts provided by application
數組屬性並在其下添加要加入的自定義字體項。注意,這裡在plist文件中寫的是文件的全稱,包括文件後綴,文件的名字我們是可以隨便改的,但建議用本來的字體族名,例如這裡是:KristenITC,字體族名是不會變的,之後具體代碼中使用的時候是用的字體族名而不是自定義的文件名。本來的字體族名可以右鍵查看字體文件的詳細信息,裡面的全稱是本來的字體族名,而名稱是自定義的。
復制資源包到Bundle Resource
檢測是否成功加入字體
在具體使用之前,我們可以先通過UIFont類提供的函數打印出系統所有的字體列表,並找到我們更添加的字體看是否添加成功,還可以具體看到我們的資源包有哪些具體的字體樣式,例如該字體族的斜體、粗體、粗斜體等等。打印字體族列表的代碼如下:
/** * 檢查自定義字體族是否成功加入 */ // 取出系統安裝了的所有字體族名 NSArray *familyNames = [UIFont familyNames]; NSLog(@"系統所有字體族名:%@", familyNames); // 打印字體族的所有子字體名(每種字體族可能對應多個子樣式字體,例如每種字體族可能有粗體、斜體、粗斜體等等樣式) for(NSString *familyName in familyNames) { // 字體族的所有子字體名 NSArray *detailedNames = [UIFont fontNamesForFamilyName:familyName]; NSLog(@"\n字體族%@的所有子字體名:%@", familyName,detailedNames); }
這裡可以從字體組列表找到我們剛添加的字體族KristenITC:
和字體族KristenITC下的具體字體樣式,這裡只有一種也是默認的一種:KristenITC-Regular:
使用字體
確定字體加入系統之後就可以像自帶的系統字體一樣直接使用了:
// 設置label的字體和大小(這裡直接使用字體族名也是可以的,有默認的子字體樣式,也可以根據需求具體到自字體比如這裡的:KristenITC-Regular) [_label setFont:[UIFont fontWithName:@"KristenITC" size:35.0]];
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!