現在、マップビューに注釈を入力し、ユーザーの現在の場所も表示しています。viewForAnnotationメソッドを使用すると、デフォルトの赤いピンですべての注釈をオーバーライドしますが、他の注釈のビューを返したいのですが、ユーザーの場所はデフォルトの青いビーコンのままにしておきます。これを簡単に行う方法はありますか、それとも新しい注釈ビューを作成して、注釈に応じて正しいビューを返す必要がありますか?
今私は次のようなものを持っています:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if (annotation.coordinate == locationManager.location.coordinate) {
return nil;
}else {
MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Beacon"];
// Button
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
button.frame = CGRectMake(0, 0, 23, 23);
annotationView.rightCalloutAccessoryView = button;
annotationView.canShowCallout = YES;
return annotationView;
}
}
しかし、アノテーション引数から座標プロパティを取得できないため、2つを同一視することはできません。
誰かがこれに対する解決策を知っていますか?