-systemFontOfSize:和-boldSystemFontOfSize之间是否有中等重量字体:?

Pro*_*ber 36 iphone uifont ipad ios

-systemFontOfSize太薄了,而boldSystemFontOfSize太粗了.我需要介于两者之间.

当我创建像这样的UIFont时:

[UIFont boldSystemFontOfSize:14];
Run Code Online (Sandbox Code Playgroud)

然后调试器打印此字体信息:

font-family:".Helvetica NeueUI"; font-weight:bold; font-style:normal; font-size:14px

有时字体具有中等字体粗细.如何创建此类型的字体,但中等重量?

And*_*rei 82

iOS 8.2开始,您可以使用:

[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`UIFontWeightMedium` 是一个 CGFloat,而不是一个枚举 (2认同)

Jus*_*Sid 25

调用NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]);打印所有可用的Helvetica Neue字体样式,HelveticaNeue-Medium其中听起来像你想要的那样:

UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:14.0f];
Run Code Online (Sandbox Code Playgroud)

如果你想确保该字体也发生变化时,系统字体的变化(例如,喜欢它与黑体视网膜设备Helvetica Neue字体一样),你能先取得系统字体,然后利用其familyNamepointSize使用检索一个中等重量+ fontNamesForFamilyName然后+ fontWithName:size:


Tai*_* Le 17

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)
}
Run Code Online (Sandbox Code Playgroud)


Axe*_*min 8

使用 Swift 4 或 5,添加此扩展:

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

然后 :

myLabel.font = UIFont.mediumSystemFont(ofSize: 16)
Run Code Online (Sandbox Code Playgroud)

同样的原则也适用与.semibold.black等,检查UIFont.Weight


Ant*_*ich 7

斯威夫特3:

UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)
Run Code Online (Sandbox Code Playgroud)