ios MapKit MKOverlayView анимация происходит мгновенно - PullRequest
6 голосов
/ 05 ноября 2011

Я пытаюсь анимировать альфа-значение представления наложения MapKit (в частности, MKCircleView) в iOS 5, используя следующий код:

-(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) {} 
     ];    
}

Альфа-значение наложения меняется, как я хочу, но оно скачет там мгновенно, а не анимируется в течение указанной продолжительности.

Кто-нибудь может подсказать, что может быть не так? Возможно, анимация при наложении изображений более сложна с блоками, чем я думал.

1 Ответ

0 голосов
/ 27 ноября 2011

Базовая анимация имеет интересное поведение, когда одновременные анимации влияют на одно и то же представление ... Если вы попытаетесь анимировать представление до того, как последняя анимация представления будет завершена, будет предполагаться, что вы предполагали, что последующая анимация будет начинаться с желаемого конечного состоянияначальныйЭто может привести к скачкам кадров, а также к скачкам альфа-значений.

В вашем случае это представление, скорее всего, анимировано чем-то другим.Попробуйте найти и удалить другие анимации / или ссылки в UIViewAnimationOptionBeginFromCurrentState с его параметрами.

...