1、事宜分發處置【由外到內】
在IOS中產生觸摸後,事宜會加到UIApplication事宜隊列,UIApplication會從事宜隊列掏出最後面的事宜停止分發處置,平日會先分發給主窗口,主窗口會挪用hitTest:withEvent:辦法,查找合適的事宜觸發視圖,即 找到被觸摸的視圖對象
尋覓流程以下:
2、呼應者鏈條【由內到外】
找到被觸摸的視圖對象後,還須要斷定該視圖對象能否能處置該觸摸事宜,假如不克不及處置,又該讓誰來處置,因而呼應者鏈條湧現,感化是 找到事宜呼應者
呼應者鏈條准繩:
3、繼續UIResponder
以上 事宜分發 和 呼應者鏈條 ,都不須要我們關懷,這些操作是主動履行的,不須要我們去操作,我們只須要懂得它們的道理就行。
在IOS中其實不是一切的類都能處置並接收事宜,只要繼續UIResponder的對象能力處置事宜(我們經常使用的UIView、UIViewController、UIApplication都繼續自UIResponder,它們都能吸收並處置事宜 ),但繼續UIResponder又不料味著必定能處置事宜
繼續 UIResponder 的對象,不克不及處置事宜的情形:
userInteractionEnabled = NO;
hidden = YES;
alpha = 0 ~ 0.01;
沒有完成touchesBegan:withEvent辦法
重寫UIResponder 觸摸呼應辦法:
#pragma mark 觸摸開端時會挪用
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
#pragma mark 觸摸挪動時會頻仍挪用
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
#pragma mark 觸摸停止分開屏幕時會挪用
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
#pragma mark 觸摸不測撤消時會挪用,好比觸摸時德律風打出去
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
4、UITouch對象
在 UIResponder 觸摸呼應辦法中,須要獲得 UITouch 對象:
//獲得一個觸摸對象(關於多點觸摸能夠有多個對象)
UITouch *touch = [touches anyObject];
//獲得在指定視圖的觸摸地位
CGPoint current = [touch locationInView:self.view];
//獲得在指定視圖的前一個觸摸地位
CGPoint previous = [touch previousLocationInView:self.view];
其他經常使用屬性:
window : 觸摸地點窗口
view : 觸摸地點視圖
tapCount : 短時光點擊次數
懂得了這些,你便可以應用觸摸事宜做一些好玩的工作了,(^o^)/~,這裡就不列詳細代碼了。
【iOS開辟之觸摸事宜】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!