2012-02-13 11 views

risposta

30

Non esiste una bussola nativa UIView. Per poter utilizzare il magnetometro, dovrete usare CoreLocation e il seguente metodo delegato:

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

per ruotare un UIView per puntare Nord (bearingView è un UIImageView):

float heading = newHeading.magneticHeading; //in degrees 
float headingDegrees = (heading*M_PI/180); //assuming needle points to top of iphone. convert to radians 
self.bearingView.transform = CGAffineTransformMakeRotation(headingDegrees); 
+0

Sì, pensi di avere ragione riguardo la bussola nativa UIView. Aspetterò un po 'per vedere se qualcun altro non è d'accordo. Certamente sì, didUpdateHeading è il modo per aggiornare qualsiasi immagine che scelgo di disegnare. Grazie mille. – theDuncs

+1

Keller - dato che nessun altro ti ha contraddetto, prenderò la tua risposta come quella giusta. Grazie compagno. – theDuncs

+0

Nessun problema. Per creare una vista bussola che punti a nord, crea semplicemente un grafico "ago della bussola" e ruotalo tramite la sua trasformazione. Vedi il mio Edit. – Keller

Problemi correlati