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

-systemFontOfSize太薄,而boldSystemFontOfSize太厚。 我需要中间的东西。

当我创build一个像这样的UIFont:

[UIFont boldSystemFontOfSize:14]; 

然后debugging器打印这个字体信息:

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

有时字体的中等字体重量。 我怎样才能创build一个这种types的字体,但中等重量?

调用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:

从iOS 8.2开始,您可以使用:

 [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; 

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

Swift 3:

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

Swift 2.3并没有改变字体大小:

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

用于:

 titleLabel.font = titleLabel.font.mediumFont 

用Swift 4,添加这个扩展

 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