gpt4 book ai didi

ios - ios中如何实现基于加速度计的摆动动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:13 26 4
gpt4 key购买 nike

大家好,我正在实现基于加速度计的钟摆动画。但它给出了奇怪的行为。下面是我的代码。请帮我找出我错在哪里。

#import "DemoViewController.h"

@interface DemoViewController ()

@end

@implementation DemoViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIAccelerometer* theAccel=[UIAccelerometer sharedAccelerometer];
theAccel.updateInterval=1/50.0f;
theAccel.delegate=self;
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
CGFloat x= acceleration.x;
self.imPendulum.transform=CGAffineTransformRotate(self.imPendulum.transform,-x);
}
@end

最佳答案

好吧,首先,您需要为钟摆的支点所在的位置创建一个 anchor ,以便摆动而不是旋转。

先试试看。然后,我想您需要创建一个系数(或更细微的公式)来将 acceleration.x 转换为 CGFloat x。

也许最重要的是,您在这里不是在制作动画,而是在执行变换,这是非常不同的。它只是将一个项目移动到一个新的位置,而不是将它轻轻地从 A 点移动到 B 点。为此,您需要将变换放在动画 block 中。

如果你尝试了以上 3 件事,你应该在路上很热,然后就是细节。

关于ios - ios中如何实现基于加速度计的摆动动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23767066/

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