在-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的视网膜设备一样),你可以首先获取系统字体,然后把它的familyName
和pointSize
取回到一个中重量使用+ 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