IBOutletでマップを追加したら、
デリゲートをselfで設定し、
addObserverを追加し、ロケーションを表示させるキーを設定します。
- (void)viewDidLoad {
[super viewDidLoad];
self.mapView.delegate = self;
[self.mapView.userLocation addObserver:self forKeyPath:@"location" options:0 context:NULL];
}
//現在地を表示させるボタンにアクションを設定
- (IBAction) showHere : (id)sender {
// show current location
mapView.userLocation.title = @"現在地";
mapView.showsUserLocation = YES;
mapView.centerCoordinate = mapView.userLocation.location.coordinate;
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
mapView.centerCoordinate = mapView.userLocation.location.coordinate;
// 一度しか現在地に移動しないなら removeObserver する
[mapView.userLocation removeObserver:self forKeyPath:@"location"];
}
これで現在地を何度でも表示させる事が出来ます。
0 件のコメント:
コメントを投稿