如何更改我的MKMapViewAnnotation的外观

时间:2015-09-22 13:25:43

标签: ios mkmapview

我已经设置了地图的区域并添加了一个引脚,但是我想知道是否可以更改引脚的外观?

我想让它看起来像将ShowUsersLocation设置为YES时出现的图标。

这是我的代码?

MKCoordinateRegion region = { { 0.0, 0.0 }, { 0.0, 0.0 } };
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
[annotation setCoordinate:mycoordinate];
region.center.latitude = mycoordinate.latitude;
region.center.longitude = mycoordinate.longitude;
region.span.longitudeDelta = 0.005f;
region.span.longitudeDelta = 0.005f;
[mapView addAnnotation:annotation];
[mapView setRegion:region animated:NO];

1 个答案:

答案 0 :(得分:1)

实施- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation委托方法。 See the Documentation

  1. 将地图视图的代理设置为您设置引脚的类(例如您的控制器)。
  2. 实施- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation委托方法。
  3. 基本实施:

    - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
        // Leave the user location pin as it is
        if ([annotation isKindOfClass:[MKUserLocation class]]) {
            return nil;
        }
        static NSString *annotationReuseIdentifier = @"Annotation";
        MKAnnotationView *annotationView = (MKAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier:annotationReuseIdentifier];
        if (annotationView == nil) {
            annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationReuseIdentifier];
        }
        annotationView.annotation = annotation;
    
        // Set up your annotation view here
    
        return annotationView;
    }
    

    如果想要更多地控制注释的外观,可以实现自己的注释视图(作为MKAnnotationView的子类)。

    要显示类似用户位置点的图钉,请制作点的图像并将其添加到注释视图或使用QuartzCore Framework绘制点。