2015-06-25 22 views
6

Mi piacerebbe creare una sovrapposizione di testo alle mie immagini. Il problema è che se mal si tenta di aggiungere un secondo testo, come un sottotitolo ignora la mia dimensione del carattere.CATextLayer ignora la dimensione del carattere

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) 

Il nuovo carattere è corretto, ma è sempre con la stessa dimensione (16) come il titolo. Come posso cambiare la dimensione del carattere?

risposta

10

Date un'occhiata a questa nota su font property di CATextLayer

Se la proprietà font è un CTFontRef, un CGFontRef o un'istanza di NSFont, la dimensione del carattere della proprietà viene ignorata.

Spiega chiaramente che la dimensione del font di CTFontRef viene ignorata. Per risolvere il problema è necessario impostare in modo esplicito fontSize attributo della CATextLayer

titleLayer.fontSize = 16 
subTitleLayer.fontSize = 10 
+0

La ringrazio molto Zell B. Ho avuto questo problema per tutto il pomeriggio. Questa interfaccia è davvero "pericolosa" da Apple. È davvero scivoloso, sono stato catturato e non ho mai dovuto copiare la dimensione del carattere in un'altra proprietà ... –

Problemi correlati