我知道如何使用fontWithName:
设置字体以及如何设置systemFont,包括粗体和斜体。
但是,如果我想要使用斜体,我该如何设置带有名称的字体?
myLabel.font = [UIFont fontWithName:@"Georgia" size:15];
或
myLabel.font = [UIFont italicSystemFontOfSize:15];
我想要一个斜体格鲁吉亚,怎么样?
答案 0 :(得分:6)
要以斜体显示,您需要执行以下操作:
[UIFont fontWithName:@"Georgia-Italic" size:15];
或者:
[UIFont fontWithName:@"GeorgiaItalic" size:15];
要找出最适合使用的内容:
NSArray *fontArray = [UIFont fontNamesForFamilyName:@"Georgia"];
然后在调试器中打印它以查看哪些子类型可用。
要使用系统字体,请执行以下操作:
[UIFont boldSystemFontOfSize:SIZE];
和
[UIFont italicSystemFontOfSize:SIZE];
希望这会有所帮助:)
答案 1 :(得分:2)
你必须知道变体名称,例如“GeorgiaIT”或“GeorgiaItalic”。
答案 2 :(得分:2)
不要尝试使用字体名称。使用iOS7 +,使用字体描述符不需要名称:
// original font to modify
UIFont *font = [UIFont fontWithName:@"Georgia" size:15];
// adding bold and italic descriptor
UIFontDescriptor *fontDescriptor = [font.fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic];
// making the new font; size:0 means 'keep the size as is'
myLabel.font = [UIFont fontWithDescriptor:fontDescriptor size:0];
使用iOS3.2 +,您可以尝试使用CoreText:
// original font to modify
UIFont *font = [UIFont fontWithName:@"Georgia" size:15];
// CoreText font equivalent
CTFontRef ctFont = CTFontCreateWithName((__bridge CFStringRef)font.fontName, font.pointSize, NULL);
// adding bold and italic
CTFontRef ctFont2 = CTFontCreateCopyWithSymbolicTraits(ctFont, 0.0, NULL, kCTFontBoldTrait | kCTFontItalicTrait, kCTFontBoldTrait | kCTFontItalicTrait);
CFRelease(ctFont);
// back to UIFont
UIFont *newfont = [UIFont fontWithName:CFBridgingRelease( CTFontCopyPostScriptName(ctFont2)) size:CTFontGetSize(ctFont2)];
CFRelease(ctFont2);
答案 3 :(得分:1)
这里的问题相同。我用这种方式解决了这个问题,这将产生(1)你正在寻找的斜体(假设它被命名为...... - 斜体),或者(2)至少是基本字体所以事情(希望)不会崩溃。顺便说一下,整个NSRange就是这样我们忽略-ItalicBold,例如,虽然它通常是-BoldItalic,所以无论如何我们都会忽略它。 干杯 -W
UIFont *myBaseForItalicFont = [UIFont preferredFontForTextStyle:UIFontDescriptorTextStyleBody];
NSString *myFontFamilyName = myBaseForItalicFont.familyName;
NSArray *myFontNames = [UIFont fontNamesForFamilyName:myFontFamilyName];
for (NSString *aFontName in myFontNames)
{
NSRange myRange = [aFontName rangeOfString:@"-Italic"];
if (myRange.location != NSNotFound)
{
if (myRange.location + myRange.length >= aFontName.length)
{
// This is it! Nothing before the hyphen, nothing after.
myBaseForItalicFont = [UIFont fontWithName:aFontName size:myRVGItalicFont.pointSize];
break;
}
}
}
答案 4 :(得分:0)
这里是Cœur在Swift中的回答:
ComboBox