大家好,我正在实现基于加速度计的钟摆动画。
但它给出了奇怪的行为。下面是我的代码。
请帮我找出我错的地方。
#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)accelerometerUIAccelerometer *)accelerometer didAccelerateUIAcceleration *)acceleration{
CGFloat x= acceleration.x;
self.imPendulum.transform=CGAffineTransformRotate(self.imPendulum.transform,-x);
}
@end
Best Answer-推荐答案 strong>
嗯,首先,您需要为钟摆的支点创建一个 anchor ,使其摆动而不是旋转。
先试试。然后,我想您需要创建一个系数(或更细微的公式)来将Acceleration.x 转换为CGFloat x。
也许最重要的是,您不是在这里制作动画,而是在执行变换,这是非常不同的。它只是将一个项目移动到一个新位置,它不会将它从 A 点轻轻移动到 B 点。为此,您需要将变换放在动画 block 中。
如果你尝试了以上 3 件事,你应该在路上很热,然后就是细节。
关于ios - ios中如何实现基于加速度计的摆锤动画,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/23767066/
|