UIGraphicsGetCurrentContext 保存旋转状态
UIGraphicsGetCurrentContext saves rotation state
我正在尝试绘制带有图像的 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 之前重置该上下文?
您将要使用:
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)
}
我正在尝试绘制带有图像的 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 之前重置该上下文?
您将要使用:
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)
}