CATextLayer忽略font-size

der*_*ida 9 uiimageview catextlayer swift

我想为我的图像创建一个文本叠加层.问题是,如果生病,尝试添加第二个文本,如字幕,它会忽略我的字体大小.

    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)
Run Code Online (Sandbox Code Playgroud)

新字体是正确的,但它总是与titleFont一样大小(16).如何更改字体大小?

Zel*_* B. 24

看一下关于CATextLayer的font属性的这个注释

如果font属性是CTFontRef,CGFontRef或NSFont的实例,则忽略该属性的字体大小.

它清楚地解释了CTFontRef的字体大小被忽略.要解决您的问题,您必须显式设置fontSizeCATextLayer的属性

titleLayer.fontSize = 16
subTitleLayer.fontSize = 10
Run Code Online (Sandbox Code Playgroud)