web-dev-qa-db-ja.com

iPhone / iPadのUILabelで太字と斜体を設定するにはどうすればよいですか?

IPhone/iPadのUILabelに太字と斜体を設定するにはどうすればよいですか?フォーラムを検索しましたが、何も助けになりませんでした。誰も私を助けることができますか?

127
Edi
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];

'fontWithName'属性の代わりに設定できるフォント名のリストがあります。リンクは here です。

フォント名で遊ぼうとしないでください。フォント記述子を使用すると、名前は必要ありません。

UILabel * label = [[UILabel alloc] init]; // use your label object instead of this
UIFontDescriptor * fontD = [label.font.fontDescriptor
            fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold
                            | UIFontDescriptorTraitItalic];
label.font = [UIFont fontWithDescriptor:fontD size:0];

size:0は、「サイズをそのままにする」ことを意味します

Swiftを使用して、次の拡張子を試してください。

extension UIFont {

    func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor()
            .fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))
        return UIFont(descriptor: descriptor, size: 0)
    }

    func boldItalic() -> UIFont {
        return withTraits(.TraitBold, .TraitItalic)
    }

}

次に、この方法で使用できます。

myLabel.font = myLabel.font.boldItalic()

または、Condensedのような追加の特性を追加することもできます。

myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)

Swift 4の更新:

extension UIFont {
  var bold: UIFont {
    return with(traits: .traitBold)
  } // bold

  var italic: UIFont {
    return with(traits: .traitItalic)
  } // italic

  var boldItalic: UIFont {
    return with(traits: [.traitBold, .traitItalic])
  } // boldItalic


  func with(traits: UIFontDescriptorSymbolicTraits) -> UIFont {
    guard let descriptor = self.fontDescriptor.withSymbolicTraits(traits) else {
      return self
    } // guard

    return UIFont(descriptor: descriptor, size: 0)
  } // with(traits:)
} // extension

次のように使用します。

myLabel.font = myLabel.font.bold

または

myLabel.font = myLabel.font.italic

または

myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])

スイフト5

    func with(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) else {
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }

    func without(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptor.SymbolicTraits(traits))) else {
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }
245

@Edinatorでこれを見てください。

myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];

必要なときに上記のいずれかを使用します

100
Sudhanshu

Fontフィールドの文字「T」をクリックして、ラベルのフォントスタイル、ファミリ、サイズを設定できます。

Label font settings

8
ViliusK

同じ問題があり、ラベルとボタンに太字と斜体の両方を適用する必要があります。次のコードを使用するだけで、この効果を実現できます。

myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
6
Even Cheng

IOS 7システムのデフォルトのフォントでは、システムのデフォルトのフォントを維持したい場合は、helvetica neue boldを使用します。

    [titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];

または、単に呼び出すことができます:

    [titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
6
John Riselvato

Swift

太字:

let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)

斜体:

let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)

3
Vyacheslav

ご覧ください: this URL

3
Olaf

特性を追加または削除できるmaksymilian wojakowskiの応答のバリエーションを作成しました

extension UIFont {

    func withTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor
            .withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits))
        return UIFont(descriptor: descriptor!, size: 0)
    }
    func withoutTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor
            .withSymbolicTraits(  self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptorSymbolicTraits(traits)))
        return UIFont(descriptor: descriptor!, size: 0)
    }
    func bold() -> UIFont {
        return withTraits( .traitBold)
    }

    func italic() -> UIFont {
        return withTraits(.traitItalic)
    }

    func noItalic() -> UIFont {
        return withoutTraits(.traitItalic)
    }
    func noBold() -> UIFont {
        return withoutTraits(.traitBold)
    }
}

label.font = label.font.italic().bold()

セルを再利用するときに便利で、前のセルのラベルに付けたイタリック体を削除したい

3
tolbard
 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

これを使用して太字のラベル/ボタンフォントを行うこともできます

3

太字のテキストの例:

UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];

斜体の例:

UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
2
Mer

これらの回答ですでに述べたように、正しいフォント名が必要ですiOSFonts.com は、使用する名前を正確に知るための最も役立つリソースであることがわかりました。

2
Richard Venable

最近、UIFont APIの制限とその解決方法に関するブログ記事を書きました。 here で見ることができます

そこで提供するコードを使用すると、次のように簡単に目的のUIFontを取得できます。

UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];

そして、それをあなたのUILabel(または何でも)に設定します:myLabel.font = myFont;

2
Jordi

@tolbardが提供する答えは驚くべきもので、うまくいきます!

ほんの一行のコードで達成できる何かの拡張機能を作成するのは、やり過ぎだと思います。

bolditaliclabelの同じテキストのスタイルを取得できます。 Swift 4.0を使用した以下の例に示すように、UIFontDescriptorを使用してフォントプロパティを設定します。

label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)

その他のオプションは次のとおりです。

traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded

それらの象徴的な特徴の意味についての詳細は? こちらをご覧ください

1
iOSer

更新 Maksymilian Wojakowski のSwift 3に対する素晴らしい答え

extension UIFont {

func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
    guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{
        return nil
    }
    return UIFont(descriptor: descriptorL, size: 0)
}

func boldItalic() -> UIFont? {
    return withTraits(traits: .traitBold, .traitItalic)
}

}

1
devjme

これは非常に簡単です。コードは次のとおりです。

[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];

これはあなたを助けます。

1
Ashu

Swift 5

スタイル= BOLDの場合

label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)

スタイル=中

label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)

スタイル=薄い

label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)
0
swiftBoy

多くの場合、太字のテキストは別のレベルの情報アーキテクチャの方法で見なされるため、1行で太字で規則的なものではないため、2つのラベル/テキストビューに分割できます。そして、エディターを使用してフォントスタイルを選択します。