1

コンパスを表示したいアプリケーションを 1 つ作成しましたが、アプリケーションで空白のページが表示されます。CoreLocation フレームワークも追加しました。コンパスを表示するのを手伝ってください。

.h ファイル コード:

import "UIKit/UIKit.h"
import "CoreLocation/CoreLocation.h"

@interface Compass_VIew : UIViewController<CLLocationManagerDelegate> 
    {

IBOutlet UIImageView *arrow;

 IBOutlet UIImageView *arrowC;

 CLLocationManager *locManager;

}

@property (nonatomic, retain) CLLocationManager *locManager;

@property(readonly, nonatomic) BOOL headingAvailable;

@end

.m ファイル コード

didUpdateHeading メソッド コード:

NSLog(@"New magnetic heading: %f", newHeading.magneticHeading);
NSLog(@"New true heading: %f", newHeading.trueHeading);

viewDidLoad メソッドのコード:

[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[self navigationController] setNavigationBarHidden:NO animated:NO];
locManager = [[[CLLocationManager alloc] init] autorelease];
locManager.desiredAccuracy= kCLLocationAccuracyBest;
locManager.delegate = self;
[self.locManager startUpdatingHeading];
4

1 に答える 1

2

コンパスの針の変換を行う必要があります

このようにする必要があります

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor clearColor];

    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    [locationManager startUpdatingLocation];
    [locationManager startUpdatingHeading];

    CLLocation *location = [locationManager location];
    CLLocationCoordinate2D user = [location coordinate];


}

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    CLLocationCoordinate2D here =  newLocation.coordinate;


}

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

    double trueheading = newHeading.magneticHeading;
    double northangle = (trueheading*M_PI/180);
    redPin.transform = CGAffineTransformMakeRotation(northangle); 
}

ここで redPin は私のニードル ビューです。ちなみに、CoreLocation Framework をインポートすることを忘れないでください。

于 2012-04-10T06:45:45.173 に答える