画面上で画像 (ヘリコプター) を移動するために加速度計を使用しています。ヘリコプターが前進すると uiimageview が 20 度回転し、ヘリコプターが後退すると uiimageview が -20 度回転するようにコードを追加しようとしています。ただし、回転が適用されると、uiimageview は元の開始位置 (ストーリー バードに配置した位置) に戻ります。理由はありますか?コードは次のとおりです。
-(void)outputAccelerationData:(CMAcceleration)acceleration
{
if (helicoptervalueX>1.5){
helicopterrotation = 1;
helicopter.transform = CGAffineTransformRotate(CGAffineTransformIdentity,0.34906585 );
NSLog(@"Tilt forward");
} else if (helicoptervalueX < -1.5){
helicopterrotation = -1;
helicopter.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -0.34906585);
NSLog(@"Tilt backward");}
else if (helicoptervalueX<=1.5 && helicoptervalueX>=-1.5){
helicopterrotation = 0;
helicopter.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 0);
NSLog(@"Helicopter flat");}
helicoptervalueX = -(acceleration.y*50.0)+calibrationx;
helicoptervalueY = (acceleration.x*50.0)+calibrationy;
int helicopternewX = (int)(helicopter.center.x + helicoptervalueX);
if (helicopternewX > 518) {
helicopternewX = 518;}
if (helicopternewX < 50){
helicopternewX = 50;}
int helicopternewY = (int)(helicopter.center.y - helicoptervalueY);
if (helicopternewY > 295){
helicopternewY = 295;}
if (helicopternewY < 25){
helicopternewY = 25;}
CGPoint helicopternewCenter = CGPointMake(helicopternewX, helicopternewY);
helicopter.center = helicopternewCenter;
}