徹底理解事件的傳遞鏈和響應(yīng)鏈需要先弄明白iOS對(duì)象為什么可以響應(yīng)用戶交互招狸,理解UIResponder類驾讲;
1.1響應(yīng)者對(duì)象(UIResponder)
iOS中不是所有的對(duì)象都能夠處理觸摸事件岔乔,只有繼承了UIResponder類的時(shí)間才能夠響應(yīng)事件瞻佛,以下類都是繼承自UIResponder的梅忌,所以都能夠響應(yīng)事件:
- UIApplication
- UIViewController
- UIView
大家有沒(méi)有思考過(guò)為什么繼承了UIResponder的類就能夠響應(yīng)就能夠接收并響應(yīng)事件呢?通過(guò)分析我們可以得出結(jié)論僧鲁,UIResponder類提供了以下方法用來(lái)響應(yīng)用戶事件:
UIResponder內(nèi)部提供了以下方法來(lái)處理事件事件
---- 觸摸事件(講解重點(diǎn))
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
---- 加速計(jì)事件
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event;
---- 遠(yuǎn)程控制事件
- (void)remoteControlReceivedWithEvent:(UIEvent *)event;
未完待續(xù)