0

我将多个 MKCircle 和一个 MKPolyline 添加到 MKMapView。在 animationWithDuration 中,我将 MKMapView 实例的 alpha 从 1 更改为 0。MKMapView 按预期消失,但在动画开始时,MKOverlays(MKCircle 和 MKPolyline)跳跃了几个像素。

        self.routeView.alpha = 0;        
        [UIView animateWithDuration:2 animations:^{
            self.routeView.alpha = 0;
        } completion:^(BOOL finished) {    
        }];

我添加了一个显示问题的示例视频。在此视频中,您会在 2 秒内看到 alpha 从 1 到 0 的变化,在动画完成后,您会看到在 2 秒内将其动画化回 1。在第一个动画的开头和第二个动画的结尾,您会看到一点跳跃。 示例视频

在模拟器中,您无法重现此问题,因为覆盖立即消失。您应该改为在设备上运行它。

有谁知道是什么导致了这个问题以及如何解决?

4

1 回答 1

0

尝试将您的动画块转换为旧语法。就我而言,块样式不起作用,但旧样式起作用了。这修复了我的 alpha 动画。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2];

self.routeView.alpha = 0.0;

[UIView commitAnimations];
于 2013-10-27T23:22:40.433 回答