1

UIPrintPageRenderer をサブクラス化して、AirPrint 経由で印刷するための独自のページを描画しています。フォントのサイズを変更したい単純な String オブジェクトがあります。drawAtPoint withAttributes メソッドを使用すると、文字列は正しい位置に描画されますが、フォント名とサイズは変更されません。UIPrintPageRenderer の drawPageAtIndex メソッド内で NSAttributedStrings を使用することは可能ですか?

サンプルコード:

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

1 に答える 1

0

タイプ自体ではなく、stringAttributes のキーの文字列として NSFontAttributeName を使用していたことがわかりました。引用符を削除すると、問題が修正されました。

于 2015-03-13T00:56:56.200 に答える