美文网首页
ios中事件处理的几个问题

ios中事件处理的几个问题

作者: 阳光沙滩海浪狗尾巴草 | 来源:发表于2016-06-08 13:02 被阅读0次

    1.ios的事件处理可以分为三类:触摸 加速计(摇一摇) 远程控制

    2.响应者对象:继承UIResponder的对象,(可以理解为可以处理事件的对象)UIApplication,UIView,UIViewController都继承自UIResponder

    3.UITouch对象

    当手指触摸屏幕时系统会自动创建与手指相关联的UITouch对象,一根手指对应一个UITouch对象

    UITouch对象的作用是记录与手指相关联的信息eg:触摸的时间,位置,阶段等

    当手指移动时系统会更新UITouch对象 离开时销毁该对象

    4.UITouch的一些属性

    5.UITouch的一些方法

    6.事件处理过程

    产生事件后系统会把事件添加到由UIApplication管理的事件处理队列中

    UIApplication取出最前面的事件交给应用程序主窗口keyWindow

    keyWindow一次按照父子控件传递下去

    注意:如果父控件不能接受事件子控件也不能接收事件

    即:userInteractionEnable = NO;

    hidden = YES;(父控件隐藏自控件也隐藏)

    alpha = 0.0~0.01;(自控件跟着透明)

    此外imageView默认userInactionEnable = NO,且imageView不能通过storyBoard添加自控件代码可以;

    7.事件处理的底层实现

    底层是通过调用hitTest方法返回最合适的view的过程:

    1)先判断自己能否接受事件

    2)然后判断点是否在自己身上

    3)从后往前遍历子控件,转换point坐标[self convertPoint:point toView:childView],调用子控件的hitTest方法

    4)若有return childView

    5)若无return self

    8.事件响应的顺序

    相关文章

      网友评论

          本文标题:ios中事件处理的几个问题

          本文链接:https://www.haomeiwen.com/subject/aptjdttx.html