objective-c – 如何为CATextLayer()设置系统字体?
发布时间:2020-12-16 10:01:45 所属栏目:百科 来源:网络整理
导读:对于UILabel,我可以将系统字体设置为: label.font = UIFont.systemFontOfSize(18,weight: UIFontWeightMedium) 对于CATextLayer,是否有类似的方法来设置系统字体而不是直接给出字体名称? textLayer = CATextLayer() textLayer.font = ??? // instead of CT
对于UILabel,我可以将系统字体设置为:
label.font = UIFont.systemFontOfSize(18,weight: UIFontWeightMedium) 对于CATextLayer,是否有类似的方法来设置系统字体而不是直接给出字体名称? textLayer = CATextLayer() textLayer.font = ??? // instead of CTFontCreateWithName("HelveticaNeue-Bold",18,nil) 解决方法
答案是否定的,但是如果你对类型系统字体名称感到厌倦,你可以用一个简单的函数包装:
func CTFontCreateSystemFontWithSize(size: CGFloat) -> CTFontRef { return CTFontCreateWithName(UIFont.systemFontOfSize(1).fontName,size,nil) } 对于自定义字体,我喜欢枚举字体系列,如下所示: enum MyFontFamily: String { case Thin = "MyFont-Thin" case Light = "MyFont-Light" case Medium = "MyFont-Medium" case Bold = "MyFont-Bold" func font (size: CGFloat) -> UIFont? { return UIFont(name: self.rawValue,size: size) } func CTFont (size: CGFloat) -> CTFontRef { return CTFontCreateWithName(self.rawValue,nil) } } 用法很简单 textLayer.font = MyFontFamily.Medium.CTFont(18.0) 这对于保持所有内容强有力非常有用,因此您可以免费获得自动完成功能并避免拼写错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |