一起旋转 imageView 和它的 UIImage

问题描述

我正在尝试同时旋转 imageView 和它的 UIImage 以获得更好的动画行为 第一次旋转时效果很好,但是当我再次旋转时图像没有改变,我做错了什么?

let imagetoRotate =  UIImageView()

@objc func rotateImageButtonTapped() {
    UIView.animate(withDuration: 0.3,animations: {
        let rotatedTransform = imagetoRotate.transform.rotated(by: CGFloat.pi / 2)
        imagetoRotate.transform = rotatedTransform
    })
   
    let image = imagetoRotate.image

    dispatchQueue.global(qos: .userInteractive).async {
        let rotatedImage = image?.rotate(radians: .pi / 2)
           page.isRotated = .rotated(rotatedImage: rotatedImage?.jpegData(compressionQuality: 1) ?? Data())
    }
   
}

解决方法

此代码:

UIView.animate(withDuration: 0.3,animations: {
    let rotatedTransform = imageToRotate.transform.rotated(by: CGFloat.pi / 2)
    imageToRotate.transform = rotatedTransform
})

是否旋转UIImage - 它会旋转图像视图。

所以,当你这样做时:

let image = imageToRotate.image

您将获得分配给图像视图的原始图像。