MKMapViewに表示したいピンが500個ほどあります。MapViewで500ピンを一度にドロップする方法
しかし、mapView.addAnnotations(places)
(places
はMKAnnotationオブジェクトの配列です)を呼び出すと、ピンが1つずつゆっくりとドロップされます。
- ドロップ負荷
- 一度にすべてのピンがドロップアニメーションこれが可能な完全
をキャンセル:
私がするかたいですか?
MKMapViewに表示したいピンが500個ほどあります。MapViewで500ピンを一度にドロップする方法
しかし、mapView.addAnnotations(places)
(places
はMKAnnotationオブジェクトの配列です)を呼び出すと、ピンが1つずつゆっくりとドロップされます。
をキャンセル:
私がするかたいですか?
あなたはMapViewの上、一度にすべてのピンをドロップしますNoにアニメーションプロパティを設定することで、あなたのMKAnnotationViews
NO(false)
へのanimatesDrop
プロパティを設定する必要があります。
MKAnnotationView *annotationView =[[MKAnnotationView alloc]init];
annotationView.animatesDrop=FALSE;
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;
}
}
ありがとうございました。他の人を助けることができるなら、これは 'mapView:viewForAnnotation:'デリゲートメソッドで行わなければなりません。 –