【问题标题】:MKPinAnnotationView custom Image is replaced by pin with animating dropMKPinAnnotationView 自定义图像被 pin 替换为动画放置
【发布时间】:2012-05-17 02:20:47
【问题描述】:

我在 MapView 上显示用户头像图像。如果化身在没有动画的情况下渲染,它们似乎正在工作,但是我想为它们的下落设置动画。如果我将 pinView.animatesDrop 设置为 true,那么我会丢失头像并被 pin 替换。如何在不使用图钉的情况下为头像的下落设置动画?

这是我正在使用的 viewForAnnotation 方法:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    if ([annotation isKindOfClass:[MKUserLocation class]])
        return nil;

    MKPinAnnotationView* pinView = (MKPinAnnotationView*)[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"MyAnnotation"];

    if (!pinView) {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomPinAnnotation"];
    }
    else
        pinView.annotation = annotation;

    //If I set this to true, my image is replaced by the pin
    //pinView.animatesDrop = true;

    //I'm using SDWebImage
    [pinView setImageWithURL:[NSURL URLWithString:@"/pathtosomeavatar.png"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

    //Adding a nice drop shadow here
    pinView.layer.shadowColor = [UIColor blackColor].CGColor;
    pinView.layer.shadowOffset = CGSizeMake(0, 1);
    pinView.layer.shadowOpacity = 0.5;
    pinView.layer.shadowRadius = 3.0;

    return pinView;
}

【问题讨论】:

标签: objective-c ios mkmapview mkpinannotationview


【解决方案1】:

当您想将自己的图像用于注释视图时,最好创建一个常规的MKAnnotationView 而不是MKPinAnnotationView

由于MKPinAnnotationViewMKAnnotationView 的子类,它具有image 属性,但它通常(通常在您不期望它时)会忽略它并改为显示其内置的图钉图像。

因此,与其与之抗争,不如使用简单的MKAnnotationView

不使用MKPinAnnotationView 最大的损失是您必须手动实现的内置拖放动画。

有关详细信息,请参阅此之前的答案:
MKMapView: Instead of Annotation Pin, a custom view

【讨论】:

    【解决方案2】:

    如果您遇到此问题并且确定您是 MKAnnotationView 而不是 MKPinAnnotationView,请确保您的 MKMapView 的委托属性未被取消。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多