Efeito de destino: Depois de clicar no botão de animação, cada cartão gira e se espalha para qualquer posição na metade superior da tela e retorna à posição inicial. Mais como a animação de habilidades da faca masculina lol :)
1: Crie um objeto de cartão
para _ em 0 ... 49 {let CardSet = uiImageView (imagem: uiimage (chamado: "cardbacklandscape")) self.view.addsubview (Cardset) Cardset.frame = self.landsCapeCardback.frame Self.CardSetList.Append (CardSet)} NSNotificationCenter.DefFenter.DeffulatorCrie cada cartão como um UIImageView. Para operar esses cartões mais tarde, uso uma matriz para mantê -los na mesma posição. Depois de criá -lo, envio uma mensagem SetCreated usando uma notificação local para informar ao observador desta página que o conjunto de cartões foi criado e pode começar a executar a segunda animação.
2: Primeiro, você precisa desativar a interação do usuário do botão que inicia a animação. Se estiver ativado, clicar continuamente criará 50 cartões todas as vezes, resultando no programa preso ou até pendurado
O tempo de atraso aqui é adicionar um tempo de atraso ao tópico apenas para tornar a animação menos rígida
Cada vez que eu loava para adicionar uma animação de rotação ao objeto de cartão subscrito correspondente e alterou sua origem. Antes de implementar essa animação com a UIView Animation, pensei em adicionar uma curva bezier a cada cartão. Isso seria mais controlável. No entanto, devido ao tempo, usei apenas o UIViewanimation. A animação de rotação adicionada ao cartão é implementada usando a biblioteca de animação pop, que usa animação básica aqui. Após esta etapa, cada cartão será girado e espalhado para diferentes posições. Quando o tempo de atraso termina e desencadeia a notificação local para enviar o Shufflefinished, o observador desta página executará a próxima animação, ou seja, restaurará cada cartão ao ponto de partida da animação.
func shuffletheset () {self.shufflebutton.userinteractionEnabled = false let teltartime = despacho_time (despacho_time_now, int64 (0,5 * duplo (nsec_per_sec))) Dispatch_after (atraso, expedição_get_main_queue ()))) NsnotificationCenter.DefaultCenter (). PostNotificationName ("shufflefinished", objeto: nil)} para contagem em 0 ... 49 {uiview.animateWithDuration (0.3, animações: {letrotateanimation = PopBasicanimation (PropertyNamed: KpoPlaNerTroTration) CardrotateanImation.tovalue = CGFLOAT (M_PI * 2.0) Cardrotateanimation.Duration = 1 // Cardrotateanimation.Duration = Double (contagem> 5? contagem/2: count/10) cardrotateanimation.timingfunction = CamediatimingFunction (Nome: KcamediTimingFunctyMation.ingFunction = CamediatimingFunction (Nome: KcamedIdiativeMingFuntyEar self.CardSetList [count] .layer.pop_addanimation (cardrotateanimation, forkey: "cardrotation") self.cardsetlist [count] .frame.origin = cgpoint) (cgfloat (arc4ndom ()) (250 - 0 1) + 0, + 74) self.view.layoutifneeded () self.landscapeCardback.removeFromSuperView ()})}}3: Restaure cada cartão na posição inicial e defina o título do botão como o estado de corte do cartão.
para contagem em 0 ... 49 {uiview.animateWithDuration (0.3, Animações: {self.cardsetlist [count] .center = self.landscapeCardback.center}) self.view.layoutifNeeded ()} Selffufflebutton.USERInterSoRStEnabledEnableden.ShuffUeded ().A necessidade de cartões serem cortados após o cartão é cortar os cartões. Por razões de tempo, os efeitos subsequentes da animação continuarão sendo atualizados na próxima semana ...
O exposto acima é o método de implementar o efeito de animação Swift Recoslagem apresentado a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!