Animação UIView pula no começo
Estou executando este código ...
[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];
Mas quando ele executa as visualizações, pule metade da transformação na direção oposta antes de deslizar para a metade da posição na direção correta.
Diminuí a duração da animação para 5 segundos, mas o salto inicial é instantâneo e metade da transformação na direção errada.
Quando eu animo de volta usando este código ...
[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.settingsView.transform = CGAffineTransformIdentity;
self.speedView.transform = CGAffineTransformIdentity;
} completion:nil];
Faz exatamente a mesma coisa.
O resultado é que o movimento final é metade da transformada desejada, já que ele salta metade da transformação na direção errada primeiro.
Eu realmente não posso descobrir porque isso está acontecendo?
Alguma ideia.
::EDITAR::
Eliminando alguma ambiguidade possível.
Não estou tentando fazer com que essas visualizações "voltem" para onde elas estão. As visualizações que estou animando são como o painel de controle na borda da tela. Quando o usuário pressiona "ir" a visão, deslize para fora do caminho. Quando o usuário pressiona "pare", os painéis voltam para a vista.
Pelo menos eles costumavam. Desde a ativação do layout automático (que eu preciso para outras partes do aplicativo), não posso simplesmente alterar o quadro das visualizações, então fui para a rota da transformação.
Você pode ver esse efeito colocando uma visualização em um controlador de visualização e um botão para executar a animação.
obrigado