如果用fontWithName:的話,后面的參數(shù)不能加.ttf
使用自定義字體的實現(xiàn)
獲取一下系統(tǒng)中所有自帶字體
很簡單额湘,就當(dā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不能寫 華文行楷,應(yīng)為這僅僅是字體的文件名彩郊,而不是字體名前弯,那么如何獲取字體名吶?其實很簡單秫逝,我們只需要在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;
}
設(shè)置字體
customLabel.font = [self customFont];