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

时间:2012-05-01 15:53:24

标签: iphone ios ipad uifont

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

当我创建这样的UIFont时:

[UIFont boldSystemFontOfSize:14];

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

  

font-family:“。Helvetica NeueUI”;字体重量:   胆大; font-style:normal; font-size:14px

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

6 个答案:

答案 0 :(得分:82)

iOS 8.2开始,您可以使用:

[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];

答案 1 :(得分:25)

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

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

如果你想确保在系统字体发生变化时字体也会发生变化(例如,像从Helvetica到Helvetica Neue的视网膜设备一样),你可以先得到系统字体,然后取出familyNamepointSize使用+ fontNamesForFamilyName然后+ fontWithName:size:

检索中等重量的一个

答案 2 :(得分: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)
}

答案 3 :(得分:7)

斯威夫特3:

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

答案 4 :(得分:2)

使用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等,请检查UIFont.Weight

答案 5 :(得分:0)

Swift 2.3并且不改变字体大小:

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

使用:

titleLabel.font = titleLabel.font.mediumFont