2015-06-25 1 views
6

Я хотел бы создать наложение текста на мои изображения. Проблема в том, что если вы пытаетесь добавить второй текст, например, подзаголовок, он игнорирует мой размер шрифта.CATextLayer игнорирует размер шрифта

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) 

Новый шрифт правильный, но его всегда с таким же размером (16), что и titleFont. Как изменить размер шрифта?

ответ

10

Посмотрите на эту записку на font property из CATextLayer

Если свойство шрифта является CTFontRef, CGFontRef, или экземпляр из NSFont, размер шрифта свойства игнорируется.

Он ясно объясняет, что размер шрифта CTFontRef игнорируется. Для того, чтобы решить вашу проблему, вы должны явно установить fontSize атрибут CATextLayer

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

Большое спасибо Zell B. Я получил этому вопросу целый день. Этот интерфейс действительно «опасен» для Apple. Это действительно круто, меня поймали и никогда не заставляют меня копировать размер шрифта в другое свойство ... –