-systemFontOfSize太薄了,而boldSystemFontOfSize太粗了。我需要介于两者之间。
当我创建这样的UIFont时:
[UIFont boldSystemFontOfSize:14];
然后调试器打印此字体信息:
font-family:“。Helvetica NeueUI”;字体重量: 胆大; font-style:normal; font-size:14px
有时字体具有中等字体粗细。如何创建此类型但具有中等重量的字体?
答案 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的视网膜设备一样),你可以先得到系统字体,然后取出familyName
并pointSize
使用+ 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