gpt4 book ai didi

objective-c - 使用核心动画旋转 UIImageView

转载 作者:行者123 更新时间:2023-12-01 14:45:06 24 4
gpt4 key购买 nike

我正在尝试做一些相对简单的事情,当用户触摸按钮时让轮子旋转 90 度,到目前为止我所做的大部分工作在第一次就可以了,但此后图像将不会移动。我希望它保持新位置并从新位置旋转 90 度,我有[UIView setAnimationBeginsFromCurrentState:YES];

但这似乎行不通

我添加了一个 NSTimer 来“重置”原始图像方向,以便轮子弹回到原始位置,然后在用户触摸它时再次旋转。 ... 然而,这并不是我真正想要的。

有没有办法让图像保持旋转 90 度,这样用户触摸四次就会将图像放回原来的位置。感谢您的帮助!!

这里是示例代码


-(IBAction) rotatewheel:(id)sender {

[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationRepeatCount:1];
wheel.transform = CGAffineTransformMakeRotation(M_PI/4);
[UIView commitAnimations];

returnwheelTimer = [NSTimer scheduledTimerWithTimeInterval:1.1 target:self selector:@selector (returnwheel) userInfo:nil repeats:NO];

}

-(void) returnwheel {

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:.5];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationRepeatCount:1];
wheel.transform = CGAffineTransformMakeRotation(M_PI);
[UIView commitAnimations];

}

最佳答案

代替:

wheel.transform = CGAffineTransformMakeRotation(M_PI/4);

使用

wheel.transform = CGAffineTransformRotate(wheel.transform,M_PI/4);

这样它将把新的转换应用于当前的转换,而不是替换它。

关于objective-c - 使用核心动画旋转 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636570/

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