1
マップに30個のアノテーションがあり、アニメーションのスピードを上げたいと思っています。MKMapViewのアノテーションのドロップを速くすることは可能ですか?
MKMapViewでアノテーションのドロップを速くすることも、すべてを一度にドロップすることもできますか?
マップに30個のアノテーションがあり、アニメーションのスピードを上げたいと思っています。MKMapViewのアノテーションのドロップを速くすることは可能ですか?
MKMapViewでアノテーションのドロップを速くすることも、すべてを一度にドロップすることもできますか?
didAddAnnotationViews
デリゲートメソッドで独自のドロップアニメーションを実装する必要があります。ダブルアニメーションが発生しないように、animatesDrop
をNO
に設定する必要があります。
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)annotationViews
{
NSTimeInterval delayInterval = 0;
for (MKAnnotationView *annView in annotationViews)
{
CGRect endFrame = annView.frame;
annView.frame = CGRectOffset(endFrame, 0, -500);
[UIView animateWithDuration:0.125
delay:delayInterval
options:UIViewAnimationOptionAllowUserInteraction
animations:^{ annView.frame = endFrame; }
completion:NULL];
delayInterval += 0.0625;
}
}
これは、指定したレートで注釈を削除します。
これらをすべて一度にドロップするには、delayInterval
の代わりににdelay
パラメータをハードコードします。
私はこれを試しましたが、ピンのいくつかは高速で落ちていましたが、デフォルトスピードで落ちていました... delayIntervalに0.0を設定しようとしましたが、ピンは一度に落ちていません... – nobu86
表示される問題を正確に複製することはできませんが、注釈は別々のバッチまたは単一のメソッド呼び出しで追加されていますか?別のメソッド呼び出しでは、NSMutableArrayに注釈を追加してから、addAnnotationsを配列で呼び出してすべてを一度に追加してみてください。または、アノテーションが追加されるのと同時に、他の時間を費やす処理が行われますか? – Anna
私はあなたが言ったことをしました。 すべてのピンをNSMutableArrayに追加し、addAnnotationSメソッドを追加しました。そして何も変わっていない。 そして、私は同時に他のプロセスを進めていません。私は次のようなことをしています。 デリゲートする前に、デリゲートする前にメソッドのすべてのピンを追加する: – nobu86