【发布时间】:2021-08-26 13:35:52
【问题描述】:
我正在尝试同时旋转 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())
}
}
【问题讨论】:
-
为什么要同时旋转图像和视图?只需删除 DispatchQueue 块,它应该可以正常工作。如果它不起作用,请显示您在代码中调用“rotateImageButtonTapped”的位置。
-
.rotate不是UIImage方法...你的image?.rotate(radians: .pi / 2)应该做什么? -
@DonMag 我试着用这个stackoverflow.com/a/47402811/9872175旋转它
-
@FelipeCruzV10 我正在旋转两者以获得更好的动画效果,也在我的代码中的某个地方我只需要 UIImage,如果我从我的 imageView 获取它就无法访问“rotateImageButtonTapped”只是一个按钮跨度>
-
如果只旋转图像视图,动画看起来不错。更好的动画是什么意思?我询问了函数的调用,因为我正在尝试你的代码,每次点击它都会很好地旋转......
标签: ios swift uiimageview uiimage