ios MapKit MKOverlayView анимация происходит мгновенно
Я пытаюсь анимировать альфа-значение представления наложения 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 ответ
Базовая анимация имеет интересное поведение, когда одновременные анимации влияют на один и тот же вид... Если вы попытаетесь анимировать вид до того, как завершится последняя анимация представления, он будет предполагать, что вы предполагали, что последующая анимация будет начинаться с желаемого конечного состояния исходного. Это может привести к скачкам кадров, а также к скачкам альфа-значений.
В вашем случае этот вид, вероятно, оживляется чем-то другим. Попробуйте найти и удалить другие анимации / или ссылки в UIViewAnimationOptionBeginFromCurrentState с его параметрами.