0

我目前正在为 iPad 开发像 photoshop 这样的应用程序,当我想要展平我的图层数组时,DrawTextInRect 不会保留CAAffineTransformMakeRotation我的UILabel. 有人知道吗?

4

2 回答 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 回答