久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

IOS學(xué)習(xí)筆記9

 oskycar 2015-01-20

在IOS開發(fā)中會(huì)遇到各種操作事件,,通過程序可以對這些事件做出響應(yīng),。

首先,當(dāng)發(fā)生事件響應(yīng)時(shí),,必須知道由誰來響應(yīng)事件,。在IOS中,由響應(yīng)者鏈來對事件進(jìn)行響應(yīng),,所有事件響應(yīng)的類都是UIResponder的子類,,響應(yīng)者鏈?zhǔn)且粋€(gè)由不同對象組成的層次結(jié)構(gòu),其中的每個(gè)對象將依次獲得響應(yīng)事件消息的機(jī)會(huì),。當(dāng)發(fā)生事件時(shí),事件首先被發(fā)送給第一響應(yīng)者,,第一響應(yīng)者往往是事件發(fā)生的視圖,,也就是用戶觸摸屏幕的地方。事件將沿著響應(yīng)者鏈一直向下傳遞,,直到被接受并做出處理


路線圖如 First Responser——>The Window——>The Application——>App Delegate


正常的響應(yīng)者鏈流程經(jīng)常被委托(delegation)打斷,,一個(gè)對象(通常是視圖)可能將響應(yīng)工作委托給另一個(gè)對象來完成(通常是視圖控制器ViewController),這就是為什么做事件響應(yīng)時(shí)在ViewController中必須實(shí)現(xiàn)相應(yīng)協(xié)議來實(shí)現(xiàn)事件委托,。


1.觸摸和事件

——UITouch

UITouch對象是一個(gè)手指接觸到屏幕并在屏幕上移動(dòng)或離開屏幕時(shí)創(chuàng)建的,。它有幾個(gè)屬性和實(shí)例方法:

phase:屬性,,返回一個(gè)階段常量,指出觸摸開始,、繼續(xù),、結(jié)束或被取消,分別對應(yīng)UITouchPhaseBegan,、UITouchPhaseMoved等

tapCount:屬性,,輕按屏幕的次數(shù)

timeStamp:屬性,觸摸發(fā)生的時(shí)間

view:屬性,,觸摸始于那個(gè)視圖

window:屬性,,觸摸始于哪個(gè)窗口

lacationInView:方法,觸摸在指定視圖中的當(dāng)前位置

previousLocationView:方法,,觸摸在指定視圖中的前一個(gè)位置


——UIEvent

UIEvent對象包含一組相關(guān)的UITouch對象,,由UITouch對象組成UIEvent對象,可以理解成一個(gè)完整的觸摸操作是一個(gè)UIEvent,,而這一系列完整操作中的每個(gè)點(diǎn)就是UITouch(按下,、移動(dòng)、離開),。

UIEvent的作用是提供相關(guān)觸摸操作的列表,,如果要獲取在屏幕上觸摸的手勢,可以使用該對象,,這一些列操作都存儲(chǔ)在Foundation框架中的NSSet對象中,。


——UIResponder

UIResponser提供四個(gè)事件響應(yīng)的方法,這些方法是事件捕捉的核心,。這些方法都接收兩個(gè)參數(shù),,一個(gè)是NSSet(包含指定階段的觸摸)和一個(gè)UIEvent。

touchesBegan:withEvent: 在手指觸摸屏幕時(shí)報(bào)告UITouchPhaseBegan事件

touchesMoved:withEvent: 在手指在屏幕上移動(dòng)時(shí)報(bào)告UITouchPhaseMoved事件

touchesEnded:withEvent: 在手指離開屏幕時(shí)報(bào)告UITouchPhaseEnded事件

touchesCancelled:withEvent: 在因接聽電話或其他因素導(dǎo)致取消觸摸時(shí)報(bào)告UITouchPhaseCancelled事件


定義一個(gè)方法用來響應(yīng)觸摸事件:

  1. -(void)manageTouches:(NSSet *)touches  
  2. {  
  3.     for (UITouch *touch in touches) {  
  4.         switch (touch.phase) {  
  5.             caseUITouchPhaseBegan:  
  6.                 NSLog(@"began...");                  
  7.                 break;  
  8.                   
  9.             caseUITouchPhaseMoved:  
  10.                  NSLog(@"move...");         
  11.                 break;  
  12.                   
  13.             caseUITouchPhaseEnded:  
  14.                  NSLog(@"end...");         
  15.                 break;  
  16.             default:  
  17.                 break;  
  18.         }  
  19.     }  
  20. }  


然后在ViewController中響應(yīng)該方法:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;


-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;


-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;


關(guān)于多點(diǎn)觸摸,,可以參考Apple IOS SDK開發(fā)文檔,,多點(diǎn)觸摸在游戲及其一些新奇的應(yīng)用中比較多,在常規(guī)的應(yīng)用開發(fā)中還是比較少的用到多點(diǎn)觸摸,。


下次將介紹UIControl對象

加入我們的QQ群或微信公眾賬號(hào)請查看:Ryan's zone公眾賬號(hào)及QQ群


歡迎關(guān)注我的新浪微博和我交流:@唐韌_Ryan




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多