2015-03-12 1 views
1

Je sous-classe UIPrintPageRenderer pour dessiner ma propre page pour l'impression via AirPrint. J'ai un objet String simple que je voudrais changer la taille de la police. En utilisant la méthode drawAtPoint withAttributes, la chaîne est dessinée à l'emplacement correct, mais le nom et la taille de la police restent inchangés. Est-il possible d'utiliser NSAttributedStrings dans la méthode drawPageAtIndex de UIPrintPageRenderer?Dessine un objet string avec UIFont dans custom UIPrintPageRenderer

Exemple de code:

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) 
    } 
} 

Répondre

0

Il se trouve que j'utilisais NSFontAttributeName en tant que chaîne dans la clé de stringAttributes plutôt que le type lui-même. Suppression des citations a corrigé le problème.