一、响应过程
在iOS中UIResponder类是专门用来响应用户的操作处理各种事件的,包括触摸事件(Touch Events)、运动事件(Motion Events)、远程控制事件(Remote Control Events)。而我们常用的可以响应事件的几个类:UIViewController,UIView,UIApplication都是直接继承自UIResponder。So,跟着来了解下。
在UIResponder中有四个方法:
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;//开始触摸
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;//触摸移动
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;//触摸结束
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;//触摸取消
所有进行自定义触摸处理的响应器都应该覆盖这四种方法,
我们用这四个方法来帮助我们了解下响应过程。
先写个视图,CustomView是自定的一个UIView:
- (void)viewDidLoad {
[super viewDidLoad];
CustomView *redView = [[CustomView alloc] initWithFrame:CGRectMake(10, 100, 300, 300)];
redView.name =@"红色";
redView.backgroundColor = [UIColor redColor];
[self.view addSubview:redView];
CustomView *greenView = [[CustomView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
greenView.name =@"绿色";
greenView.backgroundColor = [UIColor greenColor];
[redView addSubview:greenView];
}
运行长这样:
<