2013-06-21 6 views
0

Я этот код, чтобы вставить компас в моем приложении:IOS: компас в моем приложении

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ 

    // Convert Degree to Radian and move the needle 
    float oldRad = -manager.heading.trueHeading * M_PI/180.0f; 
    float newRad = -newHeading.trueHeading * M_PI/180.0f; 
    CABasicAnimation *theAnimation; 
    theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    theAnimation.fromValue = [NSNumber numberWithFloat:oldRad]; 
    theAnimation.toValue=[NSNumber numberWithFloat:newRad]; 
    theAnimation.duration = 0.5f; 
    [compassImage.layer addAnimation:theAnimation forKey:@"animateMyRotation"]; 
    compassImage.transform = CGAffineTransformMakeRotation(newRad); 

} 

это работает хорошо, но иногда это случается, что компас изображение модифицируется и кажется, растягивается ... Я не» Я знаю, в чем проблема. Вы можете мне помочь?

ответ

0
//Try this 

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
{ 
    //[manager stopUpdatingHeading]; 

    double rotation = newHeading.magneticHeading * 3.14159/180; 

    [_compass_image setTransform:CGAffineTransformMakeRotation(-rotation)]; 
} 
+0

Я пробовал, но я прокомментировал «[manager stopUpdatingHeading]», иначе нет анимации; однако кажется, что он работает нормально. – CrazyDev