UIGraphicsGetCurrentContext保存旋转状态

时间:2018-08-11 13:54:28

标签: ios swift uiimageview uikit uigraphicscontext

我正在尝试绘制其中包含图像的imageView。

let context = UIGraphicsGetCurrentContext()
context?.translateBy(x: imageView.center.x, y: imageView.center.y)
context?.rotate(by: imageData.rotationAngle)
context?.translateBy(x: -imageView.center.x, y: -imageView.center.y)
imageView.image?.draw(in: imageView.frame)

我使用多个UIImageViews进行内循环,并且下一个imageView似乎受先前旋转的影响。

在绘制新的imageView之前,我应该如何重置该上下文?

1 个答案:

答案 0 :(得分:3)

您将要使用:

if let context = UIGraphicsGetCurrentContext() {
  CGContextSaveGState(context)
  context.translateBy(x: imageView.center.x, y: imageView.center.y)
  context.rotate(by: imageData.rotationAngle)
  context.translateBy(x: -imageView.center.x, y: -imageView.center.y)
  imageView.image?.draw(in: imageView.frame)
  CGContextRestoreGState(context)
}