ios使用自定義中文字體

如果用fontWithName:的話,后面的參數不能加.ttf


使用自定義字體的實現

獲取一下系統中所有自帶字體

很簡單,就當先拋個磚頭了

NSArray *fonts = [UIFont familyNames];

for (NSString *font in fonts) {

NSLog(@"%@",font);

}

方法一

簡單的直接引用,這里我找了 華文行楷(我最喜歡的字體)的字體來做例子。

步驟一

直接將字體文件拖入我們的項目中

步驟一

步驟二

在Info.plist文件中添加 Fonts provided by application ,這是一個數組類型,將字體文件名添加到item中

步驟二

這里需要注意的是添加字體文件名的時候記得把后綴名帶上

步驟三

添加字體文件 TARGETS -> Build Phases -> Copy Bundle Resources

步驟三

步驟四

使用代碼來使用字體,使用了方法+ (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;

這里需要注意的是這里的fontName不能寫 華文行楷,應為這僅僅是字體的文件名,而不是字體名,那么如何獲取字體名吶?其實很簡單,我們只需要在MacOS下雙擊字體文件,就可以看到字體名了。

步驟四

customLabel.font = [UIFont fontWithName:@"STXingkai" size:20];

這樣就搞定了。

方法二

步驟一二三都和方法一是一樣的,只不過步驟四我們可以使用代碼來獲取字體名

- (UIFont *)customFont

{

NSString *fontPath = [[NSBundle mainBundle]pathForResource:@"華文行楷" ofType:@"ttf"];

NSURL *fontURL = [NSURL fileURLWithPath:fontPath];

CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)fontURL);

CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider);

CGDataProviderRelease(fontDataProvider);

NSString *fontName = (__bridge NSString *)CGFontCopyFullName(fontRef);

UIFont *font = [UIFont fontWithName:fontName size:20];

CGFontRelease(fontRef);

return font;

}

設置字體

customLabel.font = [self customFont];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容