KevinB
KevinB

Reputation: 2484

Swift animation - Touchdown doesn't work well

I'm trying to create de same effect than the app "Music" :

enter image description here enter image description here

When I click on a button, there is a view behind and when the button is not focused anymore, the view is hidden. I do this with TouchUpInside and 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)
      }
   }

The problem is that, when I click and hold focus, and then I swipe out of the button, the function unpressed() is not called and the button stay "focused".

I don't know how to fix it.

Upvotes: 0

Views: 499

Answers (1)

Phyber
Phyber

Reputation: 1368

This should solve the problem:

button.addTarget(self, action: #selector(unpressed(sender:)), for: .touchUpOutside)

Or connect it using storyboard to the same action (unpressed) with touchUpOutside

Upvotes: 0

Related Questions