gpt4 book ai didi

objective-c - 如何以 3d 圆形方式旋转 UIImageView?

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:36 27 4
gpt4 key购买 nike

我是核心动画的新手,我想向左或向右旋转 ImageView ,但我希望它在 z 轴上旋转,这样它看起来就像一个圆形旋转。这是一张图片以供更多解释

alt text

我想在内部 ImageView 中旋转图像,这是两个 ImageView 。

我已经尝试过此代码,请有人应用此代码并更正代码。

-(void)Rotate
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:3.0];
CATransform3D t1 = CATransform3DIdentity;
if(goingCW)
{
t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
t1 = CATransform3DTranslate(t1, CUBESIZE/2, 0, 0);
t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
t1 = CATransform3DTranslate(t1, CUBESIZE/2, 0, 0);
t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
t1 = CATransform3DTranslate(t1, CUBESIZE/2, 0, 0);
CATransform3D moveTransform = CATransform3DRotate(t1, 0.0, -1.0, 0.0, 0.0);
[InnerView.layer setTransform:moveTransform];
NSLog(@"Going Left");

}
else
{
NSLog(@"Going Right");
t1 = CATransform3DRotate(t1, radians(90), 0, 1, 0);
t1 = CATransform3DTranslate(t1, CUBESIZE, 0, 0);
CATransform3D moveTransform = CATransform3DRotate(t1, 0.0, 1.0, 0.0, 0.0);
[InnerView.layer setTransform:moveTransform];

}
goingCW=!goingCW;
[UIView commitAnimations];

}

在 viewDidLoad 或 applicationDidFinishLaunching 中用计时器调用它

goingCW = YES; // change this to NO to make it start rotating CCW instead A bool flag in header file.
NSTimer *timer=[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(Rotate) userInfo:nil repeats:YES];

最佳答案

您的问题与图片显示的不符。 Z 正在通过显示,负值更接近您。

您有两种可用的转换:- UIKit view.transform 级别的 2D- CALayers view.layer.transform 上的(伪)3D

围绕 Z 的旋转变换是用 CATransform3DRotate 完成的

关于objective-c - 如何以 3d 圆形方式旋转 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256872/

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