beginTracking
- 继承于 UIControl
- UITouch进入了 UIControl 的bounds内,对该Touch进行处理
- 定义一些追踪事件
touchesBegan
- 继承于 UIView
- 用于处理所有和当前UIView相关的 UITouch事件
- 更着重于定义一些触摸事件,而不是触摸的运动逻辑,比如多点触摸还是单点触摸
异同
以上是根据StackOverflow上的一个总结,感觉
- beginTracking着重于对于单个UITouch的追踪,而touchesBegan则着重于处理当前屏幕上的所有UITouch
- beginTracking更看中当前UIControl的bounds内的手势处理,而 touchesBegan 关注的是整个screen和当前UIView的手势操作关系
- beginTracking更看中手势操作的逻辑,和touchesBegan更看中是否产生了触摸手势
也就是说 touchesBegan 比 beginTracking 考虑的更为底层