亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ios各種手勢,很有意思

2019-11-14 20:17:19
字體:
來源:轉載
供稿:網友

一、概述

iphone中處理觸摸屏的操作,在3.2之前是主要使用的是由UIResponder而來的如下4種方式:

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

但是這種方式甄別不同的手勢操作實在是麻煩,需要你自己計算做不同的手勢分辨。后來。。。

蘋果就給出了一個比較簡便的方式,就是使用UIGestureRecognizer。

二、UIGestureRecognizer

UIGestureRecognizer基類是一個抽象類,我們主要是使用它的子類(名字包含鏈接,可以點擊跳到ios Developer library,看官方文檔):

從名字上我們就能知道, Tap(點擊)、Pinch(捏合)、Rotation(旋轉)、Swipe(滑動,快速移動,是用于監測滑動的方向的)、Pan (拖移,慢速移動,是用于監測偏移的量的)以及 LongPress(長按)。

舉個例子,可以在viewDidLoad函數里面添加:

 

  1. -(void) viewDidLoad  
  2. {  
  3.  [super viewDidLoad];  
  4.  // Do any additional setup after loading the view from its nib.  
  5.  UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];  
  6.  [self.view addGestureRecognizer:panRecognizer];//關鍵語句,給self.view添加一個手勢監測;  
  7.  panRecognizer.maximumNumberOfTouches = 1;  
  8.  panRecognizer.delegate = self;  
  9.  [panRecognizer release];  
  10. }  

其它手勢方法類似。

 

其核心就是設置delegate和在需要手勢監測的view上使用addGestureRecognizer添加指定的手勢監測。

當然要記得在作為delegate的view的頭文件加上<UIGestureRecognizerDelegate>。

不過有些手勢是關聯的,怎么辦呢?例如 Tap 與 LongPress、Swipe與 Pan,或是 Tap 一次與Tap 兩次。

手勢識別是具有互斥的原則的比如單擊和雙擊,如果它識別出一種手勢,其后的手勢將不被識別。所以對于關聯手勢,要做特殊處理以幫助程序甄別,應該把當前手勢歸結到哪一類手勢里面。

比如,單擊和雙擊并存時,如果不做處理,它就只能發送出單擊的消息。為了能夠識別出雙擊手勢,就需要做一個特殊處理邏輯,即先判斷手勢是否是雙擊,在雙擊失效的情況下作為單擊手勢處理。使用

[A requireGestureRecognizerToFail:B]函數,它可以指定當A手勢發生時,即便A已經滿足條件了,也不會立刻觸發,會等到指定的手勢B確定失敗之后才觸發。

 

  1. - (void)viewDidLoad   
  2. {  
  3.     // 單擊的 Recognizer  
  4.     UITapGestureRecognizer* singleRecognizer;  
  5.     singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(SingleTap:)];  
  6.     //點擊的次數  
  7.     singleTapRecognizer.numberOfTapsRequired = 1; // 單擊  
  8.   
  9.     //給self.view添加一個手勢監測;  
  10.   
  11.   [self.view addGestureRecognizer:singleRecognizer];  
  12.   
  13.     
  14.     // 雙擊的 Recognizer  
  15.     UITapGestureRecognizer* double;  
  16.     doubleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(DoubleTap:)];  
  17.     doubleTapRecognizer.numberOfTapsRequired = 2; // 雙擊  
  18.     //關鍵語句,給self.view添加一個手勢監測;  
  19.     [self.view addGestureRecognizer:doubleRecognizer];  
  20.       
  21.     // 關鍵在這一行,雙擊手勢確定監測失敗才會觸發單擊手勢的相應操作  
  22.     [singleRecognizer requireGestureRecognizerToFail:doubleRecognizer];  
  23.     [singleRecognizer release];  
  24.     [doubleRecognizer release];  
  25. }  
  26.   
  27. -(void)SingleTap:(UITapGestureRecognizer*)recognizer  
  28. {  
  29. //處理單擊操作  
  30. }  
  31.   
  32. -(void)DoubleTap:(UITapGestureRecognizer*)recognizer  
  33. {  
  34. //處理雙擊操作  
  35. }  

三、iphone操作手勢的大概種類

1.點擊(Tap) 點擊作為最常用手勢,用于按下或選擇一個控件或條目(類似于普通的鼠標點擊)、

2.拖動(Drag) 拖動用于實現一些頁面的滾動,以及對控件的移動功能。

3.滑動(Flick) 滑動用于實現頁面的快速滾動和翻頁的功能。

4.橫掃(Swipe) 橫掃手勢用于激活列表項的快捷操作菜單

5.雙擊(Double Tap) 雙擊放大并居中顯示圖片,或恢復原大?。ㄈ绻斍耙呀浄糯螅?。同時,雙擊能夠激活針對文字編輯菜單。

6.放大(Pinch open) 放大手勢可以實現以下功能:打開訂閱源,打開文章的詳情。在照片查看的時候,放大手勢也可實現放大圖片的功能。

7.縮小(Pinch close) 縮小手勢,可以實現與放大手勢相反且對應的功能的功能:關閉訂閱源退出到首頁,關閉文章退出至索引頁。在照片查看的時候,縮小手勢也可實現縮小圖片的功能。

8.長按(Touch &Hold) 在我的訂閱頁,長按訂閱源將自動進入編輯模式,同時選中手指當前按下的訂閱源。這時可直接拖動訂閱源移動位置。 針對文字長按,將出現放大鏡輔助功能。松開后,則出現編輯菜單。 針對圖片長按,將出現編輯菜單。

9.搖晃(Shake) 搖晃手勢,將出現撤銷與重做菜單。主要是針對用戶文本輸入的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情手机在线视频| 国语自产精品视频在线看抢先版图片| 日韩欧美在线视频免费观看| www.亚洲男人天堂| 色婷婷**av毛片一区| 精品中文字幕在线观看| 久久频这里精品99香蕉| 九九精品在线播放| 欧美久久精品午夜青青大伊人| 亚洲资源在线看| 国产va免费精品高清在线| 久久久噜噜噜久久| 成人免费大片黄在线播放| 色悠久久久久综合先锋影音下载| 欧美有码在线观看视频| 国产成人精品在线观看| 久久人人97超碰精品888| 久久中文久久字幕| 国产欧美久久久久久| 美女av一区二区三区| 欧美日韩国产精品专区| 国产精品中文字幕在线| 日韩精品在线观看一区| 久久精品久久久久久| 国产精品久久久久91| 精品福利免费观看| 日韩av理论片| 亚洲国产美女精品久久久久∴| 欧美性猛交xxxx偷拍洗澡| 午夜精品久久久久久久白皮肤| 日韩电影中文字幕一区| 日韩av免费在线看| 免费99精品国产自在在线| 欧美日韩国产成人在线| 中文字幕v亚洲ⅴv天堂| 国内精久久久久久久久久人| 91精品视频免费| 亚洲在线观看视频| 欧美日韩在线另类| 粉嫩老牛aⅴ一区二区三区| 欧美在线xxx| 国产成人综合一区二区三区| 伊人成人开心激情综合网| 亚洲欧美变态国产另类| 久久亚洲欧美日韩精品专区| 国产日韩欧美综合| 亚洲第一精品久久忘忧草社区| 国产精品嫩草影院一区二区| 91免费看片在线| 国产成人福利网站| 中文字幕欧美视频在线| 亚洲第五色综合网| 国产男女猛烈无遮挡91| 性欧美亚洲xxxx乳在线观看| 国产精品对白刺激| 欧洲成人在线视频| 国产精品久久久久久亚洲调教| 亚洲mm色国产网站| 欧美日韩午夜激情| 伊人久久大香线蕉av一区二区| 一区二区三区在线播放欧美| 国产精品自产拍高潮在线观看| 亚洲人成欧美中文字幕| 亚洲成人av在线播放| 精品久久久久久久久久久久久久| 亚洲在线一区二区| 亚洲精品久久久久久久久久久久| 精品久久国产精品| 人九九综合九九宗合| 亚洲成人av片| 91成人在线视频| 欧美人在线观看| 亚洲第一在线视频| 超碰91人人草人人干| 欧美成人免费网| 国产美女久久久| 91精品国产综合久久香蕉922| 久久久久免费视频| 色偷偷88888欧美精品久久久| 欧美刺激性大交免费视频| 亚洲一区二区久久久久久| 8090理伦午夜在线电影| 国产日韩综合一区二区性色av| 久久久999国产精品| 国产日韩欧美中文在线播放| 色综合导航网站| 久久6精品影院| 中文字幕日韩在线观看| 亚洲精品黄网在线观看| 中文字幕欧美日韩va免费视频| 久久久久久久999| 国产精品看片资源| 亚洲丝袜一区在线| 久久99热这里只有精品国产| 日韩中文在线中文网三级| 国产精品久久久久久婷婷天堂| 国产精品普通话| 久久精品成人欧美大片| 欧美交受高潮1| 欧美日韩福利在线观看| 国产精品久久久av久久久| 成人a级免费视频| 青青久久aⅴ北条麻妃| 国产日韩亚洲欧美| 97久久超碰福利国产精品…| 亚洲欧美日韩区| 亚洲成色777777女色窝| 欧美一区二区色| 欧美激情综合色综合啪啪五月| 亚洲国产99精品国自产| 日本久久久久久| 在线看欧美日韩| 国产精品久久久| 日韩在线观看免费全| 欧美日韩精品二区| 福利微拍一区二区| 国产日产欧美a一级在线| 国产精品久久77777| 国内揄拍国内精品少妇国语| 国产中文字幕91| xvideos成人免费中文版| 欧美在线免费看| 欧美性猛交xxxx免费看| 成人国产精品久久久久久亚洲| 亚洲欧美激情视频| 国产精品一区二区久久精品| 疯狂做受xxxx欧美肥白少妇| 国产精品白丝av嫩草影院| 亚洲奶大毛多的老太婆| 欧美性猛交xxx| 亚洲精品美女免费| 日本欧美在线视频| 国产精品 欧美在线| 成人精品一区二区三区电影免费| 国产精品中文字幕在线观看| 亚洲女人天堂色在线7777| 国产精品青青在线观看爽香蕉| 亚洲午夜未删减在线观看| 91亚洲精品久久久| 日韩国产在线看| 欧美激情喷水视频| 久久大大胆人体| 国产手机视频精品| 精品少妇一区二区30p| 亚洲精品日韩欧美| 亚洲视频网站在线观看| 成人中文字幕+乱码+中文字幕| 欧美亚洲国产视频| 成人xvideos免费视频| 91精品久久久久久久久久| 国语自产精品视频在免费| 日韩在线观看免费全集电视剧网站| 久久久成人av| 亚洲精品美女在线观看播放| 日本久久亚洲电影| 久久久久久久久久久人体| 热99精品只有里视频精品| 91成人在线观看国产| 91高清视频免费| 在线免费看av不卡| 一本色道久久88综合亚洲精品ⅰ| 国产精品嫩草影院久久久| 91高清在线免费观看| 国产午夜精品免费一区二区三区|