Na maioria dos casos, ou porque estamos acostumados ou porque vimos em tutoriais e em alguns textos, usamos o setAnimationDidStopSelector desta maneira:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | nil context : NULL ] ; [UIView beginAnimations: contexto nulo: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; self ] ; [SetAnimationDelegate UIView: auto]; @selector ( removeView ) ] ; [UIView setAnimationDidStopSelector: @ selector (removeView)]; ; myView.alpha = 0; ; [UIView commitAnimations]; / / void ) removeView { - (Void) {removeView ; [MyView removeFromSuperview]; } |
come delegato e tramite la setAnimationDidStopSelector gli invia un messaggio removeView quando l'animazione è terminata. No código acima o setAnimationDelegate definir self como delegado e através setAnimationDidStopSelector envia uma mensagem removeView quando a animação for concluída. O próprio código é correcta, no entanto, faz uso de uma definição de mensagem ( removeView ), que pode ser omitida. Agora, aqui é o mesmo código, com o mesmo efeito, sem a mensagem de removeView :
1 2 3 4 5 6 7 8 9 | nil context : NULL ] ; [UIView beginAnimations: contexto nulo: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; myView ] ; [SetAnimationDelegate UIView: myView]; @selector ( removeFromSuperview ) ] ; [UIView setAnimationDidStopSelector: @ selector (removeFromSuperview)]; ; myView.alpha = 0; ; [UIView commitAnimations]; |
! A coisa interessante sobre esta abordagem é que myView poderia ser uma subclasse de UIView ! Portanto, pode ser uma classe personalizada com as nossas próprias mensagens e, na forma definida, discretamente chamado por setAnimationDidStopSelector . Além disso, os setAnimationDidStopSelector seletores de acordo com parâmetros:
1 2 3 4 5 6 7 8 9 | nil context : NULL ] ; [UIView beginAnimations: contexto nulo: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; myView ] ; [SetAnimationDelegate UIView: myView]; @selector ( myMessage : param1 : ) ] ; [UIView setAnimationDidStopSelector: @ selector (myMessage: param1 :)]; ; myView.alpha = 0; ; [UIView commitAnimations]; |
Este exemplo pode ser estendido para todos os casos aqui onde nós definir um delegado, atro não é um ponteiro para uma instância de qualquer objeto.






Últimos Comentários
sebastian : grande parcela - muito obrigado!
Assunto : muito útil mesmo! Eu tentei isso e é exatamente o que eu precisava. Agora eu quero saber como faço para obter ...
vik : Com a ajuda estratégica!
Pimenta : Olá, eu não sei se você é um dos criadores do plugin WP Bannerize. Tenho visto um ...
Rosanna : Alguém pode me dizer como faço para excluir o Snap Shots janela que se abre automaticamente quando eu ...