2017-08-05 2 views
0

Ich versuche de gleiche Wirkung als die App „Music“ zu erstellen:Swift Animation - Knopf mit Kreis hinter

enter image description here enter image description here

Wenn ich auf eine Schaltfläche klicken, gibt es einen Blick hinter und Wenn die Schaltfläche nicht mehr fokussiert ist, ist die Ansicht ausgeblendet. Ich mache das mit TouchUpInside- und TouchDown-Funktionen.

@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) 
     } 
    } 

Das Problem ist, dass, wenn ich Fokus klicken und halten, und dann die Taste I streichen, wird die Funktion unpressed() nicht aufgerufen wird und die Taste bleiben „fokussiert“.

Ich versuchte auch touchUpOutside Funktion hinzuzufügen, aber kein Ergebnis. Ich weiß nicht, wie ich es beheben soll.

Antwort

1

Für mich funktioniert (ich ziehe die Ausfahrt beim Verlassen der Taste)

@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") 
    } 
}