我想为我的图片创建一个文本叠加层。问题是,如果生病,尝试添加第二个文本,如字幕,它会忽略我的字体大小。
titleLayer.frame = CGRectMake(0, 80, imageView.bounds.width, 50)
subTitleLayer.frame = CGRectMake(0, 130, imageView.bounds.width, 40)
titleLayer.string = "Title"
subTitleLayer.string = "Subtitle"
let fontName: CFStringRef = "HelveticaNeue"
let fontSubName: CFStringRef = "HelveticaNeue-Thin"
titleLayer.font = CTFontCreateWithName(fontName, 16, nil)
subTitleLayer.font = CTFontCreateWithName(fontSubName, 10, nil) // Ignores the font-size
imageView.layer.addSublayer(titleLayer)
imageView.layer.addSublayer(subTitleLayer)
新字体是正确的,但它总是与titleFont一样大小(16)。如何更改字体大小?
答案 0 :(得分:22)
在CATextLayer的font property上查看此说明
如果font属性是CTFontRef,CGFontRef或实例 NSFont,该属性的字体大小将被忽略。
它清楚地解释了CTFontRef的字体大小被忽略。要解决您的问题,您必须明确设置CATextLayer的fontSize
属性
titleLayer.fontSize = 16
subTitleLayer.fontSize = 10