title: UIButton Animations not working on UIScrollView
body: <p>I have button animations that are not working on my ScrollView. I have other VCs that are just UIViews and animations work just fine. 
  So I tried unchecking from the Attributes Inspector and adding... </p>
  
  <pre><code>self.scrollView.delaysContentTouches = false
  </code></pre>
  
  <p>...in my viewDidLoad, but it had effect.</p>
  
  <p>I also found that tapping does not trigger the animation but holding on the button for a second or more does and haptic presses also trigger the animation.</p>
  
  <p>This is my animation code:</p>
  
  <pre><code>extension UIButton {
      func startAnimatingPressActions() {
          addTarget(self, action: #selector(animateDown), for: [.touchDown, .touchDragEnter])
          addTarget(self, action: #selector(animateUp), for: [.touchDragExit, .touchCancel, .touchUpInside, .touchUpOutside])
      }
  
      @objc private func animateDown(sender: UIButton) {
          animate(sender, transform: CGAffineTransform.identity.scaledBy(x: 0.95, y: 0.95))
      }
  
      @objc private func animateUp(sender: UIButton) {
          animate(sender, transform: .identity)
      }
  
      private func animate(_ button: UIButton, transform: CGAffineTransform) {
          UIView.animate(withDuration: 0.4,
                         delay: 0,
                         usingSpringWithDamping: 0.5,
                         initialSpringVelocity: 3,
                         options: [.curveEaseInOut],
                         animations: {
                          button.transform = transform
          }, completion: nil)
      }
  }
  </code></pre>
  
  <p>I am able to get this animation working, but it doesn't feel quite right. So I'd rather not use the code below. But it does work. So I'm not sure what in the code above is causing the problem. </p>
  
  <pre><code>extension UIButton {
  
      func pulsate() {
  
          let pulse = CASpringAnimation(keyPath: "transform.scale")
          pulse.duration = 0.2
          pulse.fromValue = 0.96
          pulse.toValue = 1.0
          pulse.repeatCount = 0
          pulse.initialVelocity = 0.5
          pulse.damping = 1.0
  
          layer.add(pulse, forKey: nil)
      }
  }
  </code></pre>