iOS事件传递机制

108 阅读1分钟
  • 发生了触摸或其他事件后,系统将事件发送到UIApplication管理的事件队列中,UIApplication从队列中取出最前面的事件分发下去。通常先发送给keywindow

  • 按照视图层级,从下层向上层发送(由window到view )

  • 如果找到了合适处理事件的控件,调用touchbengin等方法

    合适的控件 如果调用了super touch...等方法事件会沿着响应链向下传递,传递给下一个响应者,这个响应者来调用touch begin...

    注意: 如果父视图不接收触摸事件,那么子视图也不能接收到

  • 如果没有找到合适的控件来处理事件,就回传给window,如果window也不进行处理,传给UIApplication,如果UIApplication不能处理,就抛弃这个事件

多态:不同对象对同一消息的不同响应方式,子类通过重写父类的方法来改变同一消息的实现,体现多态性;