UIView анимация прыгает в начале
Я запускаю этот код ...
[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
CGAffineTransform settingsTransform = CGAffineTransformMakeTranslation(self.settingsView.frame.size.width, 0);
CGAffineTransform speedTransform = CGAffineTransformMakeTranslation(-self.speedView.frame.size.width, 0);
self.settingsView.transform = settingsTransform;
self.speedView.transform = speedTransform;
} completion:nil];
Но когда он запускается, представления переходят на половину преобразования в противоположном направлении, а затем перемещаются на половину позиции в правильном направлении.
Я сократил продолжительность анимации до 5 секунд, но начальный скачок происходит мгновенно, и половина трансформации в неправильном направлении.
Когда я оживляю, используя этот код ...
[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.settingsView.transform = CGAffineTransformIdentity;
self.speedView.transform = CGAffineTransformIdentity;
} completion:nil];
Это делает то же самое.
Результатом является то, что последнее движение - это половина желаемого преобразования, так как оно сначала перескакивает половину преобразования в неправильном направлении.
Я действительно не могу понять, почему это происходит?
Есть идеи.
::РЕДАКТИРОВАТЬ::
Устранение некоторой возможной двусмысленности.
Я не пытаюсь заставить эти представления "отскочить" вернуться туда, где они есть. Виды, которые я анимирую, похожи на панель управления на краю экрана. Когда пользователь нажимает & quot; go & quot; вид затем соскользнет с дороги. Когда пользователь нажимает кнопку «Стоп» панели скользят обратно в вид.
По крайней мере, раньше. С тех пор как я включил автоматическую разметку (которая мне нужна для других частей приложения), я не могу просто поменять рамку представлений, поэтому я пошел по пути трансформации.
Вы можете увидеть этот эффект, вставив вид в контроллер представления и кнопку для запуска анимации.
Спасибо