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

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

ios各種手勢,很有意思

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

轉自http://blog.csdn.net/likendsl/article/details/7554150 這哥們很厲害的

一、概述

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
欧美国产日韩一区二区在线观看| 亚洲精品大尺度| 国产精品v片在线观看不卡| 色妞欧美日韩在线| 色婷婷av一区二区三区久久| 亚洲的天堂在线中文字幕| 亚州国产精品久久久| 成人在线播放av| 日韩在线观看你懂的| 日韩成人小视频| 亚洲欧美国产精品| 国产精品日日摸夜夜添夜夜av| 欧美日韩成人在线播放| 亚洲男人天堂2023| 国产精品成人久久久久| 欧美精品电影在线| 亚洲网址你懂得| 欧美激情视频在线免费观看 欧美视频免费一| 日韩视频中文字幕| 国产精品免费视频久久久| 国产美女久久精品| 九色成人免费视频| 久久综合亚洲社区| 亚洲新声在线观看| 久久久久久国产精品美女| 日本19禁啪啪免费观看www| 中文字幕av一区| 777精品视频| 欧美激情欧美激情| 日韩美女免费观看| 日韩性xxxx爱| 日韩欧美主播在线| 精品爽片免费看久久| 久久久视频在线| 国内精品久久久久影院优| 亚洲欧美中文另类| 欧美裸体xxxx极品少妇软件| 国产成人精品最新| 亚洲精品在线不卡| 欧美激情在线观看视频| 国产精品91免费在线| 91在线观看免费高清完整版在线观看| 97国产在线视频| 欧美午夜无遮挡| 国产精品日韩久久久久| 日韩欧美在线视频| 欧美午夜www高清视频| 国产在线精品成人一区二区三区| 日韩中文字幕视频在线| 日本精品性网站在线观看| 色小说视频一区| 国产亚洲激情在线| 日韩美女在线观看| 日韩在线观看免费av| 91日韩在线视频| 欧美在线观看www| 日日骚av一区| 国产日本欧美一区二区三区| 国产91网红主播在线观看| 97精品国产97久久久久久春色| 91成人免费观看网站| 亚洲bt天天射| 日韩欧美综合在线视频| 欧美在线影院在线视频| 国产自产女人91一区在线观看| 久久精品这里热有精品| 91亚洲精品视频| 中文字幕亚洲一区二区三区| 伊人av综合网| 精品无人区乱码1区2区3区在线| 欧美一级电影免费在线观看| 欧美性生交大片免网| 欧美特黄级在线| 日韩经典中文字幕在线观看| 亚洲一区二区少妇| 欧美精品九九久久| 欧美日韩亚洲视频一区| 日本精品久久电影| 精品国产精品三级精品av网址| 91av在线影院| 亚洲一区二区三区四区在线播放| 川上优av一区二区线观看| 亚洲欧美在线x视频| 日韩免费视频在线观看| 久久精品国产成人精品| 国产精品久久久久久久9999| 亚洲国产精品字幕| 欧美综合国产精品久久丁香| 97精品视频在线| 久久天天躁狠狠躁夜夜躁| 亚洲淫片在线视频| 日韩国产精品亚洲а∨天堂免| 国产日韩欧美在线观看| 成人黄色在线观看| 欧美成aaa人片免费看| 粉嫩老牛aⅴ一区二区三区| 午夜精品久久久久久99热| 亚洲欧美成人一区二区在线电影| 欧美xxxx做受欧美| 亚洲香蕉在线观看| 色午夜这里只有精品| 亚洲字幕一区二区| 亚洲国产日韩欧美在线99| 国产精品久久久久久久久久久不卡| 精品中文视频在线| 亚洲va码欧洲m码| 日韩欧美高清视频| 色在人av网站天堂精品| 日韩精品一二三四区| 国内精品在线一区| 亚洲精品国精品久久99热| 欧美性在线视频| 亚洲aⅴ男人的天堂在线观看| 亚洲精品一区二三区不卡| 日韩在线视频网| 欧美日韩人人澡狠狠躁视频| 久久精品在线播放| 欧美日韩免费观看中文| 国产亚洲a∨片在线观看| 亚洲欧洲激情在线| 亚洲系列中文字幕| 日韩av有码在线| 黄色一区二区在线观看| 韩剧1988在线观看免费完整版| 91网站在线看| www欧美日韩| 国产女人18毛片水18精品| 91亚洲精品一区二区| 91在线免费网站| 国产精品亚洲综合天堂夜夜| 国产va免费精品高清在线| 日韩在线视频免费观看高清中文| 精品日韩视频在线观看| 日韩av在线一区| 精品精品国产国产自在线| 日韩专区中文字幕| 日韩电影在线观看免费| xxxxxxxxx欧美| 国产精品情侣自拍| 久久久极品av| 清纯唯美亚洲激情| 欧美亚洲午夜视频在线观看| 伊人久久精品视频| 欧美日韩成人网| 久久久久久久影视| 成人乱色短篇合集| 欧美日韩国产精品一区二区三区四区| 欧美理论片在线观看| 欧美精品一二区| 亚洲最大福利网站| 国产精品91视频| 欧美激情女人20p| 日韩欧亚中文在线| 国产亚洲精品久久久久久| 亚洲人成电影在线观看天堂色| 欧美限制级电影在线观看| 高清日韩电视剧大全免费播放在线观看| 亚洲第一天堂无码专区| 欧美插天视频在线播放| 精品国产乱码久久久久久天美| 在线播放国产一区二区三区| 欧美高清视频在线| 在线播放日韩精品| 日韩最新中文字幕电影免费看|