问题描述
我正在尝试同时旋转 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
您将获得分配给图像视图的原始图像。