在我的地图视图中,当前将注解的bool animatesDrop设置为NO。这是因为当在viewWillAppear期间绘制mapView批注时,当它们动画时我没有。但是,我还有一个刷新按钮可用于重新绘制注释,并希望它们在按下时进行动画处理(放下)。有没有办法做到这一点?谢谢。

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {

    if ([annotation isKindOfClass:[MKUserLocation class]]) {

        return nil;
    }

    MyPin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];

    UIButton *calloutButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

    UIButton *directionsButton = [UIButton buttonWithType:UIButtonTypeCustom];
    directionsButton.frame = CGRectMake(0, 0, 23, 23);
    [directionsButton setBackgroundImage:[UIImage imageNamed:@"directions.png"] forState:UIControlStateNormal];

    MyPin.leftCalloutAccessoryView = directionsButton;
    MyPin.rightCalloutAccessoryView = calloutButton;
    MyPin.draggable = NO;
    MyPin.highlighted = NO;
    MyPin.animatesDrop= YES;
    MyPin.canShowCallout = YES;

    return MyPin;
}

最佳答案

“硬球”方法是建立一个布尔属性,该属性在viewWillAppear中设置为false,但在按钮操作中设置为true。将MyPin.animatesDrop设置为viewForAnnotation中的属性。不知道任何“优雅”的解决方案。

10-08 17:49