我知道如何使用fontWithName:
設置字體以及如何設置粗體和斜體的systemFont。 但是,如果我想讓它成爲斜體,我該如何設置一個帶有名稱的字體?如何設置fontWithName和italic
myLabel.font = [UIFont fontWithName:@"Georgia" size:15];
或
myLabel.font = [UIFont italicSystemFontOfSize:15];
我想斜體格魯吉亞,怎麼樣?
我知道如何使用fontWithName:
設置字體以及如何設置粗體和斜體的systemFont。 但是,如果我想讓它成爲斜體,我該如何設置一個帶有名稱的字體?如何設置fontWithName和italic
myLabel.font = [UIFont fontWithName:@"Georgia" size:15];
或
myLabel.font = [UIFont italicSystemFontOfSize:15];
我想斜體格魯吉亞,怎麼樣?
您必須知道變體名稱,例如「GeorgiaIT」或「GeorgiaItalic」。
我知道這真的很舊,但是http://iosfonts.com/會給你一個很好的可用字體及其變體名稱的概要。 – Andrew 2013-05-31 08:52:00
爲了得到它在斜體你需要做這樣的事情:
[UIFont fontWithName:@"Georgia-Italic" size:15];
或者:
[UIFont fontWithName:@"GeorgiaItalic" size:15];
要找出你最好關閉使用:
NSArray *fontArray = [UIFont fontNamesForFamilyName:@"Georgia"];
然後在調試器中打印此信息以查看哪些子類型可用。
要使用系統字體有:
[UIFont boldSystemFontOfSize:SIZE];
和:
[UIFont italicSystemFontOfSize:SIZE];
希望這有助於:)
謝謝,這有很大的幫助。我真正想要的是大膽和斜體,因此經過一些實驗喬治亞 - BoldItalic工作。 – 2012-01-30 10:16:38
你應該接受答案,因爲它看起來對你有幫助 – 2012-01-30 15:15:28
同樣在這裏的問題。我通過這種方式解決了這個問題,它會產生(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;
}
}
}
不要試圖用字體名稱的發揮。隨着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);
這裏心教堂在斯威夫特回答:
let originalFont = UIFont(name: "Georgia", size: 15)
// or: UIFont.preferredFont(forTextStyle: .body)
let originalFontDesc = originalFont.fontDescriptor
let italicFontDesc = originalFontDesc.withSymbolicTraits(.traitItalic)
let italicFont = UIFont(descriptor: italicFontDesc, size: 0)
myLabel.font = italicFont
根據[評論](https://stackoverflow.com/questions/9052570/how-to-set-fontwithname-and-italic/369 74547#comment11373039_9052690),Lars實際上是要斜體和粗體。 – 2016-05-02 03:29:56