1

RAnnotation をマップ ボックス mapView に追加してアニメーション化できます。

- (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation{
//create a new annotation marker
RMMarker *marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"pin"]];
marker.anchorPoint = CGPointMake(0.5, 1);

RestaurantAnnotation *restAnnotation = (RestaurantAnnotation *)annotation;
CLLocationCoordinate2D actualCoordinate = restAnnotation.coordinate;
CLLocationCoordinate2D containerCoordinate = restAnnotation.clusterAnnotation.coordinate;

[CATransaction begin];
[CATransaction setAnimationDuration:0.30];
[CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

CABasicAnimation *spreadOutAnimation = [CABasicAnimation animationWithKeyPath:@"position"];

spreadOutAnimation.fromValue = [NSValue valueWithCGPoint:[self.mapView coordinateToPixel:containerCoordinate]];
spreadOutAnimation.toValue   = [NSValue valueWithCGPoint:[self.mapView coordinateToPixel:actualCoordinate]];

[marker addAnimation:spreadOutAnimation forKey:@"spreadOut"];

[CATransaction commit];}

しかし、Mapbox mapView から削除された RMAnnotation をアニメーション化する際に問題があります。annotation.layer以下のデリゲート メソッドで、スプレッドをクラスターにアニメーション化しようとしましたが、annotation.layer突然 nil になりannotation.layer、マップから削除されました。アニメーションは発生しません。

- (void)mapView:(RMMapView *)mapView willHideLayerForAnnotation:(RMAnnotation *)annotation

あなたの考えは何ですか?削除された RMAnnotation オブジェクトをアニメーション化するにはどうすればよいですか?

ここに画像の説明を入力

4

0 に答える 0