对于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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。