首页 > 代码库 > UIResponder与UIView的触摸事件处理

UIResponder与UIView的触摸事件处理


一、UIResponder
UIResponder内部提供了以下方法来处理事件
触摸事件
- (
void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (
void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (
void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (
void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

加速计事件
- (
void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (
void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (
void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event;

远程控制事件
- (
void)remoteControlReceivedWithEvent:(UIEvent *)event;

二、UIView的触摸事件处理
UIViewUIResponder的子类,可以实现下列4个方法处理不同的触摸事件
一根或者多根手指开始触摸view,系统会自动调用view的下面方法
- (
void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

一根或者多根手指在view上移动,系统会自动调用view的下面方法(随着手指的移动,会持续调用该方法)
- (
void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

一根或者多根手指离开view,系统会自动调用view的下面方法
- (
void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

触摸结束前,某个系统事件(例如电话呼入)会打断触摸过程,系统会自动调用view的下面方法
(
void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

注意:touches中存放的都是UITouch对象

UIResponder与UIView的触摸事件处理