ios MapKit MKOverlayView动画即刻发生

Joe*_*ntz 6 animation overlay mapkit ios

我试图使用以下代码在iOS 5中为MapKit重叠视图(特别是MKCircleView)的alpha值设置动画:

-(void) animateCircle:(MKCircle*)circle onMap:(MKMapView*) mapView
{
    MKCircleView * circleView = (MKCircleView*) [mapView viewForOverlay:circle];
    UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionNone;
    [UIView animateWithDuration:5.0 
                          delay:0.0 
                        options:options 
                     animations:^(void) { circleView.alpha = 0.9; }
                     completion:^(BOOL finished) {} 
     ];    
}
Run Code Online (Sandbox Code Playgroud)

叠加层的alpha值正在按我的意愿改变,但它会瞬间跳到那里,而不是在指定的持续时间内动画.

任何人都可以建议可能出错的地方?也许叠加视图上的动画与块比我想象的更复杂.

Dav*_*dge 0

当并发动画影响同一个视图时,核心动画有有趣的行为...如果您尝试在视图的最后一个动画完成之前对视图进行动画处理,它将假定您希望后续动画从初始动画所需的最终状态开始。这可能会导致帧跳跃以及 alpha 值跳跃。

在你的情况下,这个视图可能是由其他东西动画的。尝试找到并删除 UIViewAnimationOptionBeginFromCurrentState 中的其他动画/或“其选项”。