2015-03-12 1 views
1

Я подклассифицирую UIPrintPageRenderer, чтобы нарисовать собственную страницу для печати через AirPrint. У меня есть простой объект String, который я хотел бы изменить размер шрифта. Используя метод drawAtPoint withAttributes, строка рисуется в правильном месте, но имя и размер шрифта не изменяются. Можно ли использовать NSAttributedStrings в методе drawPageAtIndex для UIPrintPageRenderer?Рисовать строковый объект с UIFont в пользовательском 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) 
    } 
} 

ответ

0

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