I know this question is ancient, but I had the same problem and I thought I should give my 2 cents.
If your control has any subviews at all, beginTrackingWithTouch
, touchesBegan
, etc might not get called because those subviews are swallowing the touch events.
If you don’t want those subviews to handle touches, you can set userInteractionEnabled
to NO
, so the subviews simply passes the event through. Then you can override touchesBegan/touchesEnded
and manage all your touches there.
Hope this helps.