2012-01-29 6 views
0

fontWithName:を使用してフォントを設定する方法と、太字と斜体の両方のsystemFontを設定する方法を知っています。 しかし、イタリック体にするには、どのようにフォント名を設定するのですか?fontWithNameとイタリックの設定方法

myLabel.font = [UIFont fontWithName:@"Georgia" size:15]; 

または

myLabel.font = [UIFont italicSystemFontOfSize:15]; 

私はイタリックジョージア、どのようにしたいですか?

+0

[コメント](https://stackoverflow.com/questions/9052570/how-to-set-fontwithname-and-italic/369)によると、 74547#comment11373039_9052690)、Larsは実際にItalicとBoldを望んでいます。 –

答えて

2

"GeorgiaIT"や "GeorgiaItalic"のような別名を知​​っている必要があります。使用してオフあなたが最良のだろうかを調べるために

[UIFont fontWithName:@"GeorgiaItalic" size:15]; 

[UIFont fontWithName:@"Georgia-Italic" size:15]; 

または:

+0

私はこれが本当に古かったと知っていますが、http://iosfonts.com/では、使用可能なフォントとその変種名の良い説明が得られます。 – Andrew

6

斜体でそれを得るためにあなたのような何かをする必要があります

NSArray *fontArray = [UIFont fontNamesForFamilyName:@"Georgia"]; 

これをデバッガに表示して、使用可能なサブタイプを確認します。

システムフォントを使用するには、そこにある:

[UIFont boldSystemFontOfSize:SIZE]; 

そして:

[UIFont italicSystemFontOfSize:SIZE]; 

・ホープ、このことができます:)

+2

ありがとう、それは多くの助けとなりました。私が本当に望んでいたのは、実験的なジョージア・ボールド・イタリックの実験が行われた後、太字と斜体でした。 –

+0

あなたは答えを受け入れるべきです –

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; 
     } 
    } 
} 
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 +で

source

を、あなたは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); 
0

スウィフト中・クールの答えを:

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