[iPhone学习笔记三]事件处理循环

Posted on 2012-03-08 00:34  无忧consume  阅读(192)  评论(0编辑  收藏  举报
 [iPhone学习笔记三]事件处理循环

  UIApplicationMain处理完程序初始化以后,他会开启时间出来循环和屏幕绘制循环。过程如下图:

当用户与iPhone设备交互时,iPhoneOS会检测触摸事件并把它放到事件队列中。负责事件处理的UIApplication对象每次从队列顶部取出事件,并把它传递给最适合处理它的对象。例如在按钮上的点击事件会被传递给相应的按钮对象。时间也可以被传递给控制器或其他并非直接处理改事件的其他对象。
    
  在iPhoneOS的Multi-Touch事件模型中,触摸数据被封装到单独的事件对象中(UIEvent).为了跟踪某个触摸,事件对象包含若干个触摸对象(UITouch),每一个触摸对象代表一个手指在屏幕上的触摸。当用户将手指放到屏幕上,移动手指最终离开屏幕,系统会将每一个手指的变动提交给相应的触摸对象。
    
  当启动一个程序时,系统会为程序创建一个过程和一个单独的线程。这个初始线程会变成程序的主线程。UIApplication就在此启动主循环并配置程序的事件处理代码。下图展示了事件处理代码和主线程之间的关系:


  触摸事件被系统加入到队列末尾,直到它被程序的主循环处理

Copyright © 2024 无忧consume
Powered by .NET 8.0 on Kubernetes