2011-12-31 10 views
6

Sto pensando di catturare il valore iniziale di UIAcceleration e confrontarlo con il valore corrente e poi con 'misurare', ma non so esattamente se (1) è giusto (2) cosa dovrebbe essere quella matematica.Come posso determinare l'angolo del dispositivo?

Grazie per qualsiasi aiuto.

Aggiornamento:

Ecco il codice che ho usato come suggerito da jrturton.

#import "ViewController.h" 

@interface ViewController() 
{ 
    CMMotionManager *motionManager; 
} 
@end 

@implementation ViewController 
@synthesize angleLabel; 

- (void)startMotion 
{ 
    if (motionManager == nil) 
    { 
    motionManager = [[CMMotionManager alloc] init]; 
    } 
    motionManager = [[CMMotionManager alloc] init]; 
    [motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { 
    angleLabel.text = [NSString stringWithFormat:@"%g", motion.attitude.pitch]; 
    }]; 
} 

- (void) stopMotion 
{ 
    if (motionManager) 
    { 
    [motionManager stopDeviceMotionUpdates]; 
    } 

    motionManager = nil; 
} 

- (void)viewDidUnload { 
    [self setAngleLabel:nil]; 
    [super viewDidUnload]; 
} 
@end 

risposta

4

È più facile di così. Utilizzare la proprietà attitude di CMDeviceMotion. Vedere here per la documentazione.

+0

Grazie, ho funzionato. Andando ad allegare il codice nella domanda originale. – cynicaljoy

Problemi correlati