Рисовать строковый объект с помощью UIFont в пользовательском UIPrintPageRenderer

Я создаю подкласс UIPrintPageRenderer, чтобы нарисовать свою собственную страницу для печати через AirPrint. У меня есть простой объект String, который я хотел бы изменить размер шрифта. Используя метод drawAtPoint withAttributes, строка выводится в правильном месте, но имя и размер шрифта не изменяются. Можно ли использовать NSAttributedStrings в методе drawPageAtIndex UIPrintPageRenderer?

Образец кода:

import UIKit

class MyPrintPageRenderer: UIPrintPageRenderer {
    override func drawPageAtIndex(pageIndex: Int, inRect printableRect: CGRect) {
        let font = UIFont(name: "Times", size: 72.0)!
        var stringAttributes = [NSObject: AnyObject]()
        stringAttributes["NSFontAttributeName"] = font

        let lineOne = "Some text"
        let lineOnePointX = CGRectGetMidX(printableRect) - nameLineOne.sizeWithAttributes(stringAttributes).width / 2
        let lineOnePointY = CGRectGetMinY(printableRect)
        let lineOnePoint = CGPoint(x: lineOnePointX, y: lineOnePointY)
        lineOne.drawAtPoint(lineOnePoint, withAttributes: stringAttributes)
    }
}

1 ответ

Оказывается, я использовал NSFontAttributeName в качестве String в ключе stringAttributes, а не в самом типе. Удаление кавычек исправило проблему.

Другие вопросы по тегам