2013-10-12 81 views
1

我正在使用加速度計在屏幕上移動圖像(直升機)。我試圖添加代碼,所以當直升機向前移動時,它將圖像視圖旋轉20度,當直升機向後移動時,它將圖像視圖旋轉-20度,這個想法是爲了創造直升機移動更逼真的效果。然而,當應用旋轉時,uiimageview會移回原始起始位置(我將它放在故事吟遊詩人的位置)。任何想法爲什麼?下面的代碼:旋轉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; 

}

回答

0

你試試這個?爲了保持在它的上面現有的變換和運用旋轉:

helicopter.transform = CGAffineTransformRotate([helicopter transform],angle); 

然後回去水平,你可能會應用負角度:

helicopter.transform = CGAffineTransformRotate([helicopter transform], -angle); 
相關問題