項(xiàng)目中要使用自定義自定義字體,中間沒(méi)遇到大坑,也不難,但還是總結(jié)
獲取一下系統(tǒng)中所有自帶字體
很簡(jiǎn)單,就當(dāng)先拋個(gè)磚頭了
NSArray *fonts = [UIFont familyNames];
for (NSString *font in fonts) {
NSLog(@"%@",font);
}
方法一
簡(jiǎn)單的直接引用,這里我找了 華文行楷(我最喜歡的字體)的字體來(lái)做例子。
步驟一
直接將字體文件拖入我們的項(xiàng)目中

步驟一
步驟二
在Info.plist文件中添加 Fonts provided by application ,這是一個(gè)數(shù)組類(lèi)型,將字體文件名添加到item中

步驟二
這里需要注意的是添加字體文件名的時(shí)候記得把后綴名帶上
步驟三
添加字體文件 TARGETS -> Build Phases -> Copy Bundle Resources

步驟三
步驟四
使用代碼來(lái)使用字體,使用了方法+ (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;
這里需要注意的是這里的fontName不能寫(xiě) 華文行楷,應(yīng)為這僅僅是字體的文件名,而不是字體名,那么如何獲取字體名吶?其實(shí)很簡(jiǎn)單,我們只需要在MacOS下雙擊字體文件,就可以看到字體名了。

步驟四
customLabel.font = [UIFont fontWithName:@"STXingkai" size:20];
這樣就搞定了。
方法二
步驟一二三都和方法一是一樣的,只不過(guò)步驟四我們可以使用代碼來(lái)獲取字體名
- (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;
}
設(shè)置字體
customLabel.font = [self customFont];
Demo的 github地址