2017-08-05 2 views
0

Je suis en train de créer de même effet que l'application « Musique »:animation Swift - bouton avec le cercle derrière

enter image description here enter image description here

Lorsque je clique sur un bouton, il y a une vue derrière et Lorsque le bouton n'est plus focalisé, la vue est masquée. Je fais cela avec TouchUpInside et TouchDown funcs.

@IBAction func pressed(_ sender: UIButton) { 
     UIView.animate(withDuration: 0.25, animations: { 
     self.backgroundMoreView.alpha = 0.0 
     self.backgroundMoreView.transform = CGAffineTransform(scaleX: 
      1.2, y: 1.2) 
     sender.transform = CGAffineTransform.identity 
     }) { (_) in 
     self.backgroundMoreView.transform = CGAffineTransform.identity 
     } 
    } 


    @IBAction func unpressed(_ sender: UIButton) { 
     UIView.animate(withDuration: 0.25) { 
     self.backgroundMoreView.alpha = 0.3 
     sender.transform = CGAffineTransform(scaleX: 0.8, y: 
      0.8) 
     } 
    } 

Le problème est que, lorsque je clique sur et maintenez-focus, puis je Faites glisser votre doigt sur le bouton, la fonction unpressed() n'est pas appelé et le bouton rester « concentré ».

J'ai également essayé d'ajouter touchUpOutside mais pas de résultat. Je ne sais pas comment le réparer.

Répondre

1

Pour moi, cela fonctionne (je préfère la sortie à la sortie du bouton)

@IBAction func touchDown(_ sender: UIButton) { 
    UIView.animate(withDuration: 0.25, animations: { 
     self.background.alpha = 1.0 
    }) { (_) in 
     print("do") 
    } 
} 

@IBAction func touchDragExit(_ sender: UIButton) { 
    UIView.animate(withDuration: 0.25, animations: { 
     self.background.alpha = 0.0 
    }) { (_) in 
     print("away") 
    } 
}