Ios CoreText未加载自定义字体
我有两种自定义的.ttf和.otf字体。我尝试使用以下代码行将它们加载到CoreText中:Ios CoreText未加载自定义字体,ios,core-text,core-foundation,Ios,Core Text,Core Foundation,我有两种自定义的.ttf和.otf字体。我尝试使用以下代码行将它们加载到CoreText中: CTFontRef fontRef = CTFontCreateWithName(CFSTR("Ronnia"), self.fontSize, NULL); 令人沮丧的是,它可以与“美国打字机”等已安装字体一起使用。但更令人困惑的是,我发现我安装的自定义字体可以与UILabel一起使用fontWithName如果自定义字体可以与UILabel一起使用,那么它应该可以在CoreText中作为 font
CTFontRef fontRef = CTFontCreateWithName(CFSTR("Ronnia"), self.fontSize, NULL);
令人沮丧的是,它可以与“美国打字机”等已安装字体一起使用。但更令人困惑的是,我发现我安装的自定义字体可以与UILabel一起使用
fontWithName
如果自定义字体可以与UILabel一起使用,那么它应该可以在CoreText中作为
fontRef = CTFontCreateWithName((CFStringRef)fontName, fontSize, NULL);
创建字体后,需要在NSAttributedString的属性化字典中将其设置为值kCTFontAttributeName的fontRef。它适合我。要在iOS中使用自定义字体,只需将字体拖放到项目中即可。在Info.plist中使用“应用程序提供的字体”键提及扩展名为的字体名称数组。然后使用以下代码打印所有字体系列名称:
for (NSString* family in [UIFont familyNames])
{
DebugLog(@"FONT FAMILY: %@", family);
for (NSString *name in [UIFont fontNamesForFamilyName: family])
{
DebugLog(@" %@", name);
}
}
控制台打印:
Arial希伯来语阿里亚赫布鲁黑体
阿里亚尔韦伯灯
阿里亚尔赫布鲁
Calibri
Calibri Bold
Calibri
格鲁吉亚
格鲁吉亚黑体字
格鲁吉亚黑体字
乔治亚斜体
格鲁吉亚
然后从控制台中,您将获得实际的字体名称(如上所述)。使用下面的代码创建字体- 核心文本中:
CTFontRef-fontRef=CTFontCreateWithName((CFStringRef)fontName,fontSize,NULL)代码>
在UIKit中:
UIFont*font=[UIFont-fontWithName:fontName-size:10]代码>
注意:此处fontName=@“Calibri Bold”
没有扩展名