最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ios的手勢操作之UIGestureRecognizer淺析(推薦)

 更新時(shí)間:2016年12月12日 16:36:25   作者:more2010wei  
本篇文章主要介紹了ios的手勢操作之UIGestureRecognizer淺析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。

一、概述

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

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

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

二、UIGestureRecognizer

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

  1. UITapGestureRecognizer
  2. UIPinchGestureRecognizer
  3. UIRotationGestureRecognizer
  4. UISwipeGestureRecognizer
  5. UIPanGestureRecognizer
  6. UILongPressGestureRecognizer

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

舉個(gè)例子,可以在viewDidLoad函數(shù)里面添加:

-(void) viewDidLoad 
{ 
 [super viewDidLoad]; 
 // Do any additional setup after loading the view from its nib. 
 UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)]; 
 [self.view addGestureRecognizer:panRecognizer];//關(guān)鍵語句,給self.view添加一個(gè)手勢監(jiān)測; 
 panRecognizer.maximumNumberOfTouches = 1; 
 panRecognizer.delegate = self; 
 [panRecognizer release]; 
} 

其它手勢方法類似。

其核心就是設(shè)置delegate和在需要手勢監(jiān)測的view上使用addGestureRecognizer添加指定的手勢監(jiān)測。

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

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

手勢識(shí)別是具有互斥的原則的,比如單擊和雙擊,如果它識(shí)別出一種手勢,其后的手勢將不被識(shí)別。所以對(duì)于關(guān)聯(lián)手勢,要做特殊處理以幫助程序甄別,應(yīng)該把當(dāng)前手勢歸結(jié)到哪一類手勢里面。

比如,單擊和雙擊并存時(shí),如果不做處理,它就只能發(fā)送出單擊的消息。為了能夠識(shí)別出雙擊手勢,就需要做一個(gè)特殊處理邏輯,即先判斷手勢是否是雙擊,在雙擊失效的情況下作為單擊手勢處理。使用
[A requireGestureRecognizerToFail:B]函數(shù),它可以指定當(dāng)A手勢發(fā)生時(shí),即便A已經(jīng)滿足條件了,也不會(huì)立刻觸發(fā),會(huì)等到指定的手勢B確定失敗之后才觸發(fā)。

- (void)viewDidLoad  
{ 
  // 單擊的 Recognizer 
  UITapGestureRecognizer* singleRecognizer; 
  singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(SingleTap:)]; 
  //點(diǎn)擊的次數(shù) 
  singleTapRecognizer.numberOfTapsRequired = 1; // 單擊 
 
  //給self.view添加一個(gè)手勢監(jiān)測; 
 
 [self.view addGestureRecognizer:singleRecognizer]; 
 
  
  // 雙擊的 Recognizer 
  UITapGestureRecognizer* doubleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(DoubleTap:)]; 
  doubleRecognizer.numberOfTapsRequired = 2; // 雙擊 
  //關(guān)鍵語句,給self.view添加一個(gè)手勢監(jiān)測; 
  [self.view addGestureRecognizer:doubleRecognizer]; 
   
  // 關(guān)鍵在這一行,雙擊手勢確定監(jiān)測失敗才會(huì)觸發(fā)單擊手勢的相應(yīng)操作 
  [singleRecognizer requireGestureRecognizerToFail:doubleRecognizer]; 
  [singleRecognizer release]; 
  [doubleRecognizer release]; 
} 
 
-(void)SingleTap:(UITapGestureRecognizer*)recognizer 
{ 
//處理單擊操作 
} 
 
-(void)DoubleTap:(UITapGestureRecognizer*)recognizer 
{ 
//處理雙擊操作 
} 

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

1.點(diǎn)擊(Tap)

點(diǎn)擊作為最常用手勢,用于按下或選擇一個(gè)控件或條目(類似于普通的鼠標(biāo)點(diǎn)擊)、

2.拖動(dòng)(Drag)

拖動(dòng)用于實(shí)現(xiàn)一些頁面的滾動(dòng),以及對(duì)控件的移動(dòng)功能。

3.滑動(dòng)(Flick)

滑動(dòng)用于實(shí)現(xiàn)頁面的快速滾動(dòng)和翻頁的功能。

4.橫掃(Swipe)

橫掃手勢用于激活列表項(xiàng)的快捷操作菜單

5.雙擊(Double Tap)

雙擊放大并居中顯示圖片,或恢復(fù)原大?。ㄈ绻?dāng)前已經(jīng)放大)。同時(shí),雙擊能夠激活針對(duì)文字編輯菜單。

6.放大(Pinch open)

放大手勢可以實(shí)現(xiàn)以下功能:打開訂閱源,打開文章的詳情。在照片查看的時(shí)候,放大手勢也可實(shí)現(xiàn)放大圖片的功能。

7.縮小(Pinch close)

縮小手勢,可以實(shí)現(xiàn)與放大手勢相反且對(duì)應(yīng)的功能的功能:關(guān)閉訂閱源退出到首頁,關(guān)閉文章退出至索引頁。在照片查看的時(shí)候,縮小手勢也可實(shí)現(xiàn)縮小圖片的功能。

8.長按(Touch &Hold)

在我的訂閱頁,長按訂閱源將自動(dòng)進(jìn)入編輯模式,同時(shí)選中手指當(dāng)前按下的訂閱源。這時(shí)可直接拖動(dòng)訂閱源移動(dòng)位置。

針對(duì)文字長按,將出現(xiàn)放大鏡輔助功能。松開后,則出現(xiàn)編輯菜單。

針對(duì)圖片長按,將出現(xiàn)編輯菜單。

9.搖晃(Shake)

搖晃手勢,將出現(xiàn)撤銷與重做菜單。主要是針對(duì)用戶文本輸入的。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS開發(fā)基礎(chǔ)之C語言

    iOS開發(fā)基礎(chǔ)之C語言

    現(xiàn)在越來越多的iOS開發(fā)興趣愛好者投入到了iOS培訓(xùn)中,有的是已經(jīng)在職的員工,有的是還在就讀的學(xué)生,還有一些是完全零基礎(chǔ)的同學(xué),那么對(duì)于他們來說就要一切從基礎(chǔ)開始學(xué),首先從C語言學(xué)起
    2015-11-11
  • ios學(xué)習(xí)筆記之基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換

    ios學(xué)習(xí)筆記之基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換

    在編碼過程中,數(shù)據(jù)的處理是必要的。眾多數(shù)據(jù)中,NSString、NSData、NSArray、 NSDictionary等數(shù)據(jù)類型是常用的,對(duì)付它們?nèi)菀?,但是在多個(gè)數(shù)據(jù)類型之間轉(zhuǎn)換就需要技巧了。本文主要給大家介紹ios中基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換,有需要的下面來一起看看吧。
    2016-11-11
  • 詳解iOS社會(huì)化分享集成

    詳解iOS社會(huì)化分享集成

    這篇文章主要介紹了詳解iOS社會(huì)化分享集成的相關(guān)知識(shí)點(diǎn)以及實(shí)現(xiàn)的代碼效果講述,有興趣的朋友參考下。
    2018-02-02
  • UITableView中Cell重用機(jī)制導(dǎo)致內(nèi)容重復(fù)的解決方法

    UITableView中Cell重用機(jī)制導(dǎo)致內(nèi)容重復(fù)的解決方法

    這篇文章主要為大家詳細(xì)介紹了UITableView中Cell重用機(jī)制導(dǎo)致內(nèi)容重復(fù)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • ios微信瀏覽器返回不刷新問題完美解決方法

    ios微信瀏覽器返回不刷新問題完美解決方法

    這篇文章主要介紹了ios微信瀏覽器返回不刷新問題完美解決方法,需要的朋友可以參考下
    2017-09-09
  • iOS  Mask屬性的詳細(xì)介紹及應(yīng)用實(shí)例

    iOS Mask屬性的詳細(xì)介紹及應(yīng)用實(shí)例

    這篇文章主要介紹了iOS Mask屬性的詳細(xì)介紹的相關(guān)資料,這里對(duì)Mask的屬性進(jìn)行了詳細(xì)說明并附簡單代碼實(shí)例,幫助大家更直接學(xué)習(xí)理解,這部分知識(shí),需要的朋友可以參考下
    2016-11-11
  • 詳解IOS四種保存數(shù)據(jù)的方式

    詳解IOS四種保存數(shù)據(jù)的方式

    本篇文章主要介紹了OS四種保存數(shù)據(jù)的方式,現(xiàn)在分享給大家,也給大家做個(gè)參考。感興趣的小伙伴們可以參考一下。
    2016-11-11
  • iOS新增繪制圓的方法實(shí)例代碼

    iOS新增繪制圓的方法實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于iOS新增繪制圓的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • ios開發(fā)Flutter構(gòu)建todo?list應(yīng)用

    ios開發(fā)Flutter構(gòu)建todo?list應(yīng)用

    這篇文章主要為大家介紹了ios開發(fā)Flutter構(gòu)建todo?list應(yīng)用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 詳解 swift3.0 可選綁定共用同一塊內(nèi)存空間的實(shí)例

    詳解 swift3.0 可選綁定共用同一塊內(nèi)存空間的實(shí)例

    這篇文章主要介紹了詳解 swift3.0 可選綁定共用同一塊內(nèi)存空間的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

英山县| 五家渠市| 靖安县| 太原市| 泌阳县| 鱼台县| 辉南县| 沛县| 江西省| 枞阳县| 万年县| 宜丰县| 盖州市| 曲松县| 陆良县| 拜城县| 洪江市| 修文县| 海宁市| 延边| 镇远县| 广州市| 改则县| 即墨市| 合山市| 晋宁县| 三原县| 泊头市| 乌拉特后旗| 方山县| 田阳县| 云安县| 仙游县| 揭东县| 黄大仙区| 大同市| 哈尔滨市| 铜山县| 宁都县| 安化县| 蒙山县|