事件传递机制和响应者链:总体来说,事件传递机制是从上到下,从父控件到子控件的,响应者链相反。事件传递从最上层的UIApplication--UIWindow--父容器-子容器这个流程来进行传递。这些从上到下的控件就是响应者,而这些响应者构成了响应者链。响应者自下而上,直到有touches...方法来响应.
①.首先判断主窗口(keyWindou)自己是否能接受触摸事件
②.判断触摸点是否在自己身上(
(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
)
③.子控件数组中从后往前遍历子控件,重复前面两个步骤(所谓从后往前遍历子控件,就是首先查找子控件数组中最后一个元素,然后执行1、2步骤)
④.如果没有符合条件的子控件,那么就认为自己最合适处理这个事件,也就是自己是最合适的view。
kvc和kvo: kvc主要用于访问私有属性。kvo是观察者模式在ios的体现。kvc的流程是setter/getter---- _key,_iskey,key,isKey.
runloop:保证线程可以使一些事件(比如定时器)等持续运行。
多线程:http://www.cocoachina.com/articles/19769
多线程总结下:常用的是Gcd,主要是理解同步异步(异步具有开启新线程的能力),串行队列和并发队列(并发队列是多个任务同时执行)的概念,在主线程里完成ui的刷新。