我目前正在为iPad开发类似Photoshop的应用程序,当我想要展平我的图层阵列时,DrawTextInRect不会保留CAAffineTransformMakeRotation
的变换(UILabel
)。有人有任何想法吗?
答案 0 :(得分:0)
将文本绘制到另一个上下文中并获取它的CGImage,然后查看在旋转的上下文中绘制图像是否有效(应该)。
编辑:我自己没有这样做,我相信它会奏效。执行此操作时,标签可能不应插入视图中,但无论如何它都可能以这种方式工作。您可能需要进行试验:UIGraphicsBeginImageContextWithOptions( myLabel.bounds.size, NO, 0); // 0 == [UIScreen mainScreen].scale
CGContextRef context = UIGraphicsGetCurrentContext();
[myLabel.layer renderInContext:context];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
答案 1 :(得分:0)
将上下文翻译为标签的来源,然后将标签的变换应用于上下文。
以下代码在Swift中。
let context = UIGraphicsGetCurrentContext()!
context.saveGState()
let t = myLabel.transform
let translationPt = CGPoint.init(x: myLabel.frame.origin.x, y: myLabel.frame.origin.y)
context.translateBy(x: translationPt.x, y: translationPt.y)
context.concatenate(t)
myLabel.layer.render(in: context)
context.restoreGState()