title: Using UIResponder methods for UIControl views
body: <p>I am trying to use <code>UIControl</code> as the superclass for a custom <code>ActionView</code> , in the <a href="https://developer.apple.com/documentation/uikit/uicontrol" rel="nofollow noreferrer">Apple docs</a> it says I need to use <code>beginTracking(..</code> to track interactions:</p>
  <blockquote>
  <p>Override the beginTracking(<em>:with:), continueTracking(</em>:with:),
  endTracking(_:with:), and cancelTracking(with:) methods to track touch
  events occurring in the control. You can use the tracking information
  to perform additional actions. Always use these methods to track touch
  events instead of the methods that the UIResponder class defines.</p>
  </blockquote>
  <p>More importantly, it stays I should avoid the <code>UIResponder</code> methods, e.g.: <code>touchesBegan(...</code>.</p>
  <p>Well, all subviews of the <code>UIControl</code> need to have <code>isUserInteractionEnabled</code> set to <code>false</code> so <code>beginTracking(..)</code> is called.</p>
  <p>Disabling the interaction of all subviews makes that my custom view cannot have a <code>UIButton</code> as subview anymore (or not so easily). Using <code>touchesBegan(..)</code> makes that everything works, view works as I want it, <code>UIButton</code> subviews are interacted with.</p>
  <p>Does someone know why <code>touchesBegan(..)</code> should be avoided, what are the downsides?</p>