ピン/注釈をマップビューに配置するアプリケーションを作成しています。ユーザーがピンに近づくと、ピンの色が変わります。すべてが正常に機能し、ピンは希望する場所に配置され、十分に近づくとアラート メッセージが表示されます。しかし、ピンの色を更新する方法がわかりません。注釈を削除して置き換える必要がありますか? 不要なようです。私が探しているのは、注釈を置き換えることなくマップビューを更新/更新することだけです。
CLLocation *place =[[CLLocation alloc] initWithCoordinate:location altitude:1 horizontalAccuracy:1 verticalAccuracy:-1 timestamp:nil];
AddresAnnotation *ann = [[AddresAnnotation alloc] initWithCoordinate:place.coordinate];
[ann setTitle:[rows placeName]];
[mapView addAnnotation:ann];
location は CLLocationCoordinate2D
です rows は、さまざまな場所とその情報を含むオブジェクトです
mapView デリゲート メソッドは次のとおりです (最後の「}」がコード サンプルの外にある理由はわかりません)。
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
if (annotation != self.mapView.userLocation) {
annView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Plats"] autorelease];
[annView setPinColor:MKPinAnnotationColorRed];
annView.animatesDrop = TRUE;
annView.canShowCallout = YES;
return annView;
} else {
zoomButton.enabled = TRUE;
return nil;
}
}