在我的地图视图中,当前将注解的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中的属性。不知道任何“优雅”的解决方案。