我有兩個自定義的.ttf和.otf字體。我想使用此行代碼來加載它們在CoreText:CoreText不加載自定義字體
CTFontRef fontRef = CTFontCreateWithName(CFSTR("Ronnia"), self.fontSize, NULL);
無奈的是它與像「美國打字機」安裝的字體。但是,什麼是更令人困惑的是,我發現我安裝自定義字體與UILabels工作fontWithName
我有兩個自定義的.ttf和.otf字體。我想使用此行代碼來加載它們在CoreText:CoreText不加載自定義字體
CTFontRef fontRef = CTFontCreateWithName(CFSTR("Ronnia"), self.fontSize, NULL);
無奈的是它與像「美國打字機」安裝的字體。但是,什麼是更令人困惑的是,我發現我安裝自定義字體與UILabels工作fontWithName
如果自定義字體具有的UILabel工作,那麼它應該能夠在創建後CoreText工作作爲
fontRef = CTFontCreateWithName((CFStringRef)fontName, fontSize, NULL);
字體,您需要將它設置爲fontRef,以便爲NSAttributedString的歸屬字典中的值kCTFontAttributeName使用。這個對我有用。
爲了在iOS中使用自定義字體,只需通過將&拖放到您的項目來添加您的字體。在Info.plist中使用關鍵字「應用程序提供的字體」提到帶有擴展名的字體名稱數組。
for (NSString* family in [UIFont familyNames])
{
DebugLog(@"FONT FAMILY: %@", family);
for (NSString *name in [UIFont fontNamesForFamilyName: family])
{
DebugLog(@" %@", name);
}
}
控制檯打印:
宋體希伯來語
ArialHebrew粗體
ArialHebrew光強
ArialHebrew
宋體然後使用下面的代碼打印所有字體系列名稱
宋體粗體
宋體
格魯吉亞
格魯吉亞BOLDITALIC
格魯吉亞粗體
格魯吉亞斜體
格魯吉亞
然後從控制檯,您將獲得實際的字體 - 名稱(如上所述)。使用下面的代碼來創建字體 -
在覈心文本:
CTFontRef fontRef = CTFontCreateWithName((CFStringRef)fontName, fontSize, NULL);
UIKit中: UIFont *font = [UIFont fontWithName:fontName size:10];
注:此處fontName = @"Calibri-Bold"
是不帶擴展名。