gpt4 book ai didi

objective-c - 同时动画旋转/缩放/平移 UIImage

转载 作者:技术小花猫 更新时间:2023-10-29 11:12:19 27 4
gpt4 key购买 nike

我是 objective-c 的新手,我想在屏幕上添加一个图像,像在 AS3 中那样对它进行补间,将它从屏幕的一端移动到另一端,同时围绕它自己的中心点旋转。

我试过

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
// TRANSFORM SCREENSHOT
screenShotView.transform = CGAffineTransformRotate(screenShotView.transform, -M_PI * 0.05);
screenShotView.transform = CGAffineTransformScale(screenShotView.transform, 0.6, 0.6);
screenShotView.transform = CGAffineTransformTranslate(screenShotView.transform,
self.webView.frame.origin.x,
self.webView.frame.origin.y - self.webView.frame.size.height * 0.3
);

但使用此代码,图像会围绕 TransformIdentity 的中心旋转。因此,在旋转和移动时,旋转会失去控制,并且图像不会完全位于我喜欢的位置。

同时旋转和平移的正确方法是什么,将旋转中心与图像一起平移?

至少在转换之后我想在图像的右上角添加一个关闭按钮。为此,我也需要角的新坐标。

谢谢!

最佳答案

我现在以以下代码结束,但我仍然不知道这是否是最先进的解决方案。

CGAffineTransform translate = CGAffineTransformMakeTranslation(self.webView.frame.origin.x,self.webView.frame.origin.y - self.webView.frame.size.height * 0.25);
CGAffineTransform scale = CGAffineTransformMakeScale(0.6, 0.6);
CGAffineTransform transform = CGAffineTransformConcat(translate, scale);
transform = CGAffineTransformRotate(transform, degreesToRadians(-10));

[UIView beginAnimations:@"MoveAndRotateAnimation" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:2.0];

screenShotView.transform = transform;

[UIView commitAnimations];

关于objective-c - 同时动画旋转/缩放/平移 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com