web-dev-qa-db-ja.com

-systemFontOfSize:と-boldSystemFontOfSize:の間に中程度の太さのフォントはありますか?

-systemFontOfSizeが薄すぎ、boldSystemFontOfSizeが厚すぎます。その間に何かが必要です。

このようなUIFontを作成すると:

[UIFont boldSystemFontOfSize:14];

次に、デバッガはこのフォント情報を出力します。

font-family: ".Helvetica NeueUI"; font-weight:太字;フォントスタイル:通常; font-size:14px

フォントのフォントの太さが中程度の場合があります。このタイプで中程度の太さのフォントを作成するにはどうすればよいですか?

39
Proud Member

NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]);を呼び出すと、Helvetica Neueで使用可能なすべてのフォントスタイルが出力されます。その中には、_HelveticaNeue-Medium_があり、これは必要なスタイルのように聞こえます。

_UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:14.0f];
_

システムフォントが変更されたときにフォントも変更されるようにする場合(たとえば、HelveticaからHelvetica NeueへのRetinaデバイスでの変更のように)、まずシステムフォントを取得してから、そのfamilyNameおよびpointSize _+ fontNamesForFamilyName_を使用し、次に_+ fontWithName:size:_を使用して中程度の重みを持つものを取得するには

25
JustSid

iOS 8.2 以降、以下を使用できます。

[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
84
Andrei

Swift 2.0、xcode7.1

if #available(iOS 8.2, *) {
   titleLabel?.font = UIFont.systemFontOfSize(15, weight: UIFontWeightMedium)
} else {
    titleLabel?.font = UIFont(name: "HelveticaNeue-Medium", size: 15)
}
17
Tai Le

スウィフト3:

UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)
7

Swift 4または5の場合、この拡張子を追加します。

extension UIFont {
    class func mediumSystemFont(ofSize pointSize: CGFloat) -> UIFont {
        return self.systemFont(ofSize: pointSize, weight: .medium)
    }
}

次に:

myLabel.font = UIFont.mediumSystemFont(ofSize: 16)

同じ原則が.semibold.blackなどで機能します。チェック IFont.Weight

6
Axel Guilmin

フォントサイズを変更しないSwift 2.3:

extension UIFont {
    var mediumFont: UIFont {
        return UIFont.systemFontOfSize(self.pointSize, weight: UIFontWeightMedium)
    }
}

で使用:

titleLabel.font = titleLabel.font.mediumFont
0
hashier