iOS多點觸摸與手勢

來源:互聯網
上載者:User

轉自: http://book.51cto.com/art/201110/297453.htm

4.2.2 iOS多點觸摸與手勢

iOS賦予使用者至少3.5英寸的寬廣視野,在當時可謂令人眼前一亮。在這不大不小的舞台上,手指可以靈活地跳動,而在此之前,傳統的觸屏手機都只能用單指,而且很多都是電阻屏。但是自從iOS 橫空出世之後,一切都改變了。

1)多點觸摸

iOS徹底打破了傳統手機的操作模式,多點觸摸使之更為人性化。多點觸摸的實現代碼如下:

 
  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
  2.     NSUInteger numTouches = [touches count];  
  3. }  

上述方法傳遞一個NSSet執行個體與一個UIEvent執行個體,可以通過擷取touches參數中的對象來確定當前有多少根手指觸摸,touches中的每個對象都是一個UITouch事件,表示一個手指正在觸控螢幕幕。倘若該觸摸是一系列輕擊的一部分,則還可以通過詢問任何UITouch對象來查詢相關的屬性。

同滑鼠操作一樣,iOS也可以有單擊、雙擊甚至更多類似的操作,有了這些,在這個有限大小的螢幕上,可以完成更多的功能。正如上文所述,通過訪問它的touches屬性來查詢:

 
  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
  2.     NSUInteger numTaps = [[touches anyObject] tapCount];  
  3. }  

2)手勢

手勢是指從一個或多個手指接觸螢幕開始,到手指離開螢幕為止所發生的所有事件。無論這個過程耗時多長,只要還有手指停留在螢幕上,就處於某個手勢之中,除非發生意外情況。

有了手勢之後,螢幕才可以感應到我們的手在做什麼動作。很多場合,一些控制項已經能夠支援雙指拉開放大、捏合縮小的動作,圖片的多指旋轉功能靈活、方便,符合我們的生活習慣,諸如此類的功能都是多指技術應用於現實的最好證明。可以通過以下方式檢測手勢:

 
  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
  2.     If ([touches count]==2) { // 檢測觸摸點個數  
  3.         NSArray *twoTouches = [touches allObjects];  // 擷取觸摸點數組  
  4.         UITouch *first = [twoTouches objectAtIndex:0];  // 第一個觸摸點  
  5.         UITouch *second = [twoTouched objectAtIndex;1]; // 第二個觸摸點  
  6. CGFloat initialDistance = distanceBetweenPoints(  
  7. [first locationInView:self.view],[second locationInView:self.view]);  // 計算兩個觸摸點之間的距離  
  8. }  
  9. }  

iPhone iOS 4.x可以通過設定開啟螢幕的縮放功能:三指連按兩次便可切換放大,在放大的情況下還可以通過三指來移動螢幕;再次三指連按兩次便可恢複正常狀態。

iPad iOS 4.3已經可以支援四指操作,通過各種手勢,可以實現諸多以前無法實現的效果:四指向上滑動可以顯示後台啟動並執行程式;四指向左滑動可以向左切換已開啟的程式,四指向右滑動則可以向右切換已開啟的程式;在程式開啟的情況下,四指捏合可以關閉當前程式。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.