ios 事件

用户在使用app过程中,会产生各种各样的事件

ios 3大事件

1.触摸事件 

2.加速计事件

3.远程控制事件


主要介绍触摸事件

响应者对象  --- 不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件 UIApplicationVC View都是


为什么继承UIResponder的对象就能处理事件, 因为UIResponder内部提供了相应的方法来处理事件

1.触摸事件 

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event


2.加速计事件

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event


3.远程控制事件

- (void)remoteControlReceivedWithEvent:(UIEvent *)event



UIView的触摸事件处理

一根或者多根手指开始触摸view,系统会自动调用view的下面的方法

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

一根或者多根在这个view上移动

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

一根手指或多根手指离开view

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

被打断的时候

- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event


当用户用一根手指触摸屏幕时,就会创建一个与手指相关的uitouch对象

一个手指对应一个uitouch对象


uitouch 作用

保存着跟手指相关的信息 比如触摸位置 时间 阶段

当手指一动时 系统会更新同一个uitouch对象  使之能够一直保存该手指在的触摸位置

开发中不要用双击

uitouch属性

window  view  tapcount   timestamp phase




事件的产生 传递

发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中


UIApplication会从事件队列中取出最前面事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口


第一步 找到一个最合适的视图来处理触摸事件 然后找到该视图的touch事件


如果父控件不能接受触摸事件,那么子控件就不可能接收到触摸事件




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值