2

マップキットのアノテーションのピンカラーを変更する方法を教えてください。現在、次のコードを使用しています。

    //King Solomon's Lodge No. 194
CLLocationCoordinate2D kingsolomons;
kingsolomons.latitude = 38.052041;
kingsolomons.longitude = -78.683218;
Annotation *kingsolomonslodge = [[Annotation alloc] init];
kingsolomonslodge.coordinate = kingsolomons;
kingsolomonslodge.title = @"King Solomon's Lodge No. 194";
kingsolomonslodge.subtitle = @"Charlottesville, VA";
[self.myMapView addAnnotation:kingsolomonslodge];

私はこの質問を数回グーグルで検索しましたが、これを現在のコードに実装する方法がわかりません。

4

5 に答える 5

2

クラスの場合、pinColor プロパティを使用できますMKAnnotation

kingsolomonslodge.pinColor = MKPinAnnotationColorGreen;

viewForAnnotation:もう 1 つの方法は、デリゲートを使用してデフォルトのピンの代わりに画像を使用することです。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *identifier = @"MyLocation";
    if ([annotation isKindOfClass:[yourAnnotationLocation class]])
    {

        MKAnnotationView *annotationView = (MKAnnotationView *) [_mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
        if (annotationView == nil)
        {
            annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
            annotationView.enabled = YES;
            annotationView.canShowCallout = YES;
            annotationView.image = [UIImage imageNamed:@"yourImage.png"];//here we use a nice image instead of the default pins
            annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        }
        else
        {
            annotationView.annotation = annotation;
        }
        return annotationView;
    }

return nil;
}
于 2012-12-10T04:23:31.283 に答える
1

この男を試してみてください...

kingsolomonslodge.pinColor = AnnotationColorRed;

それが機能しているかどうかを教えてください

ハッピーコーディング!!!!

于 2012-12-10T04:15:46.477 に答える
0

カスタムカラーを適用したい場合は、画像を追加することもできます。

 MKAnnotationView *pinView = nil; 
pinView.image = [UIImage imageNamed:@"pinks.jpg"];
于 2012-12-10T11:41:44.310 に答える