我目前正在为 iPad 开发像 photoshop 这样的应用程序,当我想要展平我的图层数组时,DrawTextInRect 不会保留CAAffineTransformMakeRotation
我的UILabel
. 有人知道吗?
问问题
888 次
2 回答
0
将您的文本绘制到另一个上下文中并获取它的 CGImage,然后查看在旋转的上下文中绘制图像是否有效(应该)。
编辑:我自己没有这样做,我相信它会起作用。执行此操作时,标签可能不应该插入到视图中,但无论如何它可能会以这种方式工作。您可能需要尝试:
UIGraphicsBeginImageContextWithOptions( myLabel.bounds.size, NO, 0); // 0 == [UIScreen mainScreen].scale
CGContextRef context = UIGraphicsGetCurrentContext();
[myLabel.layer renderInContext:context];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
于 2012-10-02T12:04:13.027 回答
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()
于 2017-11-17T13:38:32.560 回答