我正在继承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)
}
}发布于 2015-03-13 08:56:56
事实证明,我在stringAttributes的键中使用NSFontAttributeName作为字符串,而不是类型本身。删除引号已解决此问题。
https://stackoverflow.com/questions/29019694
复制相似问题