Nim*_*od7 3 iphone mkmapview ipad ios
我希望自定义MKMapView userLocation注释,以绘制像官方地图应用程序一样的标题箭头.
我试图在viewForAnnotation中执行此操作:
- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]]) {
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法找到接下来要做的事情来获取UserLocation的视图并自定义它.
非常感谢...
我创建了SVPulsingAnnotationView,一个可自定义的副本MKUserLocationView.

你实例化它就像任何其他MKAnnotationView:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
if([annotation isKindOfClass:[MyAnnotationClass class]]) {
static NSString *identifier = @"currentLocation";
SVPulsingAnnotationView *pulsingView = (SVPulsingAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if(pulsingView == nil) {
pulsingView = [[SVPulsingAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
pulsingView.annotationColor = [UIColor colorWithRed:0.678431 green:0 blue:0 alpha:1];
}
pulsingView.canShowCallout = YES;
return pulsingView;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
默认用户位置标记的类(至少在SDK 4.2中)是MKUserLocationView,但这不是公共的,因此您无法创建要修改的实例而不会有来自应用商店的拒绝风险.您将不得不创建自己的MKAnnotationView(或MKAnnotationView的子类).
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |