ios使用自定義中文字體

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


使用自定義字體的實現(xiàn)

獲取一下系統(tǒng)中所有自帶字體

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

NSArray *fonts = [UIFont familyNames];

for (NSString *font in fonts) {

NSLog(@"%@",font);

}

方法一

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

步驟一

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

步驟一

步驟二

在Info.plist文件中添加 Fonts provided by application ,這是一個數(shù)組類型,將字體文件名添加到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];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容