如何在MapView

时间:2016-05-11 12:35:15

标签: ios swift

我想在MKMapView上显示大约500个引脚。

但是,当我调用mapView.addAnnotations(places)places是一个MKAnnotation对象数组)时,引脚会逐渐缓慢下降。

我想要:

  • 在加载时立即丢弃所有引脚
  • 完全取消投放动画

这可能吗?

3 个答案:

答案 0 :(得分:6)

您应该将animatesDrop的{​​{1}}属性设置为MKAnnotationViews

答案 1 :(得分:1)

通过将animation属性设置为No,将在MapView上一次性删除所有Pins。

$ids = $step->contacts()->allRelatedIds();

foreach ($ids as $id){
    $step->contacts()->updateExistingPivot($id, ['completed' => true]);
}

答案 2 :(得分:0)

您需要在didAddAnnotationViews委托方法中实现自己的drop动画。您还应将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;
    }
}
相关问题