148

UILabeliPhone / iPadで太字と斜体を設定するにはどうすればよいですか?フォーラムを検索しましたが、何も役に立ちませんでした。誰か助けてもらえますか?

4

19 に答える 19

305

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

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 ])

Swift5のアップデート

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

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

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



    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)
    }
}
于 2014-02-14T10:42:31.963 に答える
132
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];

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

于 2011-01-17T12:51:08.477 に答える
103

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

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

上記のいずれかを必要なときに使用してください

于 2011-01-17T13:02:58.720 に答える
8

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

ラベルのフォント設定

于 2015-08-27T23:47:00.043 に答える
7

スウィフト3

大胆な:

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

イタリック:

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

于 2017-01-02T15:43:56.950 に答える
6

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

myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
于 2012-08-12T21:09:07.987 に答える
6

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

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

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

    [titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
于 2013-09-26T17:47:02.800 に答える
3
 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

これを使って太字のラベル/ボタンフォントを作成することもできます

于 2012-08-13T12:19:54.070 に答える
3

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()

セルを再利用していて、前のセルのラベルに付けた斜体を削除したい場合に便利です

于 2017-02-24T12:24:31.330 に答える
2

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

于 2013-01-28T18:28:35.997 に答える
2

最近、UIFontAPIの制限とその解決方法についてブログに投稿しました。ここで見ることができます

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

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

次に、次のコマンドを使用してUILabel(またはその他)に設定します。 myLabel.font = myFont;

于 2012-07-27T11:12:39.423 に答える
2

MaksymilianWojakowskiのswift3の素晴らしい答えを更新する

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)
    }
}
于 2017-05-16T13:41:01.893 に答える
2

太字のテキストの例:

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];
于 2017-09-08T10:39:33.527 に答える
2

@tolbardによって提供された答えは素晴らしく、うまく機能しますが!

たった1行のコードで実現できる拡張機能を作成するのはやり過ぎだと思います。

Swift 4.0を使用して、以下の例で以下に示すようにフォントプロパティを設定することにより、同じテキストの太字斜体のスタイルを取得できます。 labelUIFontDescriptor

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

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

traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded

それらの象徴的な特徴が何を意味するかについての詳細は?ここにアクセス

于 2019-03-01T13:39:38.213 に答える
1

これは非常に簡単です。これがコードです。

[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];

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

于 2016-02-22T06:45:41.150 に答える
0

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

于 2018-09-26T21:22:34.133 に答える
0

Swift5を使用

スタイルの場合=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)
于 2019-08-16T13:52:29.507 に答える
0

ただそれについて言及したいのですが、

UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold)
UIFont.boldSystemFont(ofSize: 16)

彼らは異なる結果をもたらします...

于 2019-10-08T05:37:55.290 に答える
0

Swift 5用に更新され、デバイスの優先サイズカテゴリを尊重します。

// Bold
label.font = UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize, weight: .bold)

// Italic
label.font = UIFont.italicSystemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize)

ここに投稿された他の回答は良いですが、pointSizesがハードコーディングされています。

于 2020-08-31T19:11:18.423 に答える