Qual é a melhor prática considerada para animar transições de exibição no iPhone?
Por exemplo, o ViewTransitions
projeto de amostra da apple usa código como:
CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:1];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];
mas também existem trechos de código flutuando na rede com a seguinte aparência:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[myview removeFromSuperview];
[UIView commitAnimations];
Qual é a melhor abordagem? Se você também pudesse fornecer um trecho, seria muito apreciado.
NOTA: Não foi possível obter a segunda abordagem para funcionar corretamente.
iphone
ios
cocoa-touch
uiview
core-animation
Keith Fitzgerald
fonte
fonte
UIView
. Eles são essencialmente os mesmos que osbeginAnimations
amigos, mas usam os recursos de bloqueio / fechamento.[UIView transitionWithView:mysuperview duration:0.75 options:UIViewAnimationTransitionFlipFromRight animations:^{ [myview removeFromSuperview]; } completion:nil]
Verifique a documentação do UIView para obter detalhes.Eu tenho usado o último para muitas animações leves e agradáveis. Você pode usá-lo com duas visões cruzadas, ou esmaecer uma na frente da outra, ou esmaecer. Você pode fotografar uma vista sobre outra como um banner, pode aumentar ou diminuir a visão ... Estou obtendo muita milhagem de
beginAnimation
/commitAnimations
.Não pense que tudo o que você pode fazer é:
Aqui está uma amostra:
Como você pode ver, você pode brincar com alfa, quadros e até tamanhos de uma exibição. Brincar. Você pode se surpreender com seus recursos.
fonte
A diferença parece ser a quantidade de controle que você precisa sobre a animação.
A
CATransition
abordagem oferece mais controle e, portanto, mais coisas para configurar, por exemplo. a função de temporização. Sendo um objeto, você pode armazená-lo para mais tarde, refatorar para apontar todas as suas animações para reduzir o código duplicado etc.Os
UIView
métodos de classe são convenientes para animações comuns, mas são mais limitados queCATransition
. Por exemplo, existem apenas quatro tipos de transição possíveis (virar para a esquerda, virar para a direita, enrolar para cima, enrolar para baixo). Se você quisesse fazer um fade in, teria que cavar paraCATransition's
diminuir a transição ou configurar uma animação explícita doUIView
alfa do seu.Observe que,
CATransition
no Mac OS X, você pode especificar umCoreImage
filtro arbitrário para usar como transição, mas como está agora, não é possível fazer isso no iPhone, o que faltaCoreImage
.fonte
Podemos animar imagens no iOS 5 usando esse código simples.
fonte
Nos
UIView
documentos, leia sobre esta função para ios4 +fonte
De qualquer forma, o método "Block" é preferido hoje em dia. Vou explicar o bloco simples abaixo.
Considere o trecho abaixo. bug2 e bug 3 são imageViews. A animação abaixo descreve uma animação com duração de 1 segundo após um atraso de 1 segundo. O bug3 é movido de seu centro para o centro do bug2. Quando a animação estiver concluída, será registrado o "Center Animation Done!".
Espero que esteja limpo !!!
fonte
Aqui está o código para animação suave, pode ser útil para muitos desenvolvedores.
Encontrei este trecho de código neste tutorial.
fonte
vamos tentar fazer o checkout do Swift 3 ...
fonte