精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iOS開發教程之手勢識別方法

移動開發 iOS
感覺有必要把iOS開發中的手勢識別做一個小小的總結。在上一篇iOS開發之自定義表情鍵盤(組件封裝與自動布局)博客中用到了一個輕擊手勢,就是在輕擊TextView時從表情鍵盤回到系統鍵盤,在TextView中的手是用storyboard添加的。下面會先給出如何用storyboard給相應的控件添加手勢,然后在用純代碼的方式給我們的控件添加手勢,手勢的用法比較簡單。和button的用法類似,

感覺有必要把iOS開發中的手勢識別做一個小小的總結。在上一篇iOS開發之自定義表情鍵盤(組件封裝與自動布局)博客中用到了一個輕擊手勢,就是在輕擊TextView時從表情鍵盤回到系統鍵盤,在TextView中的手是用storyboard添加的。下面會先給出如何用storyboard給相應的控件添加手勢,然后在用純代碼的方式給我們的控件添加手勢,手勢的用法比較簡單。和button的用法類似,也是目標動作回調,話不多說,切入今天的正題。總共有六種手勢識別:輕擊手勢(TapGestureRecognizer),輕掃手勢(SwipeGestureRecognizer), 長按手勢(LongPressGestureRecognizer), 拖動手勢(PanGestureRecognizer), 捏合手勢(PinchGestureRecognizer),旋轉手勢(RotationGestureRecognizer);

其實這些手勢用touche事件完全可以實現,蘋果就是把常用的觸摸事件封裝成手勢,來提供給用戶。讀者完全可以用TouchesMoved來寫拖動手勢等

一,用storyboard給控件添加手勢識別,當然啦用storyboard得截張圖啦

1.用storyboard添加手勢識別,和添加一個Button的步驟一樣,首先我們得找到相應的手勢,把手勢識別的控件拖到我們要添加手勢的控件中,截圖如下

2.給我們拖出的手勢添加回調事件,和給Button回調事件沒啥區別的,在回調方法中添加要實現的業務邏輯即可,截圖如下:

 二,純代碼添加手勢識別

用storyboard可以大大簡化我們的操作,不過純代碼的方式還是要會的,就像 要Dreamwear編輯網頁一樣(當然啦,storyboard的拖拽功能要比Dreamwear的拖拽強大的多),用純代碼敲出來的更為靈活,更加便 于維護。不過用storyboard可以減少我們的工作量,這兩個要配合著使用才能大大的提高我們的開發效率。個人感覺用storyboard把框架搭起 來(Controller間的關系),一下小的東西還是用純代碼敲出來更好一些。下面就給出如何給我們的控件用純代碼的方式來添加手勢識別。

1.輕擊手勢(TapGestureRecognizer)的添加

初始化代碼TapGestureRecongnizer的代碼如下:

  1. 1     //新建tap手勢 
  2. 2     UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; 
  3. 3     //設置點擊次數和點擊手指數 
  4. 4     tapGesture.numberOfTapsRequired = 1//點擊次數 
  5. 5     tapGesture.numberOfTouchesRequired = 1//點擊手指數 
  6. 6     [self.view addGestureRecognizer:tapGesture]; 

在回調方法中添加相應的業務邏輯:

  1. 1 //輕擊手勢觸發方法 
  2. 2 -(void)tapGesture:(id)sender 
  3. 3 { 
  4. 4     //輕擊后要做的事情         
  5. 5 } 

2.長按手勢(LongPressGestureRecognizer)

初始化代碼:

  1. //添加長摁手勢 
  2. 2     UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGesture:)]; 
  3. 3     //設置長按時間 
  4. 4     longPressGesture.minimumPressDuration = 0.5//(2秒) 
  5. 5     [self.view addGestureRecognizer:longPressGesture]; 

在對應的回調方法中添加相應的方法(當手勢開始時執行):

  1. 1 //常摁手勢觸發方法 
  2. 2 -(void)longPressGesture:(id)sender 
  3. 3 { 
  4. 4     UILongPressGestureRecognizer *longPress = sender; 
  5. 5     if (longPress.state == UIGestureRecognizerStateBegan) 
  6. 6     { 
  7. 7         UIAlertView *alter = [[UIAlertView alloc] initWithTitle:@"提示" message:@"長按觸發" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil]; 
  8. 8         [alter show]; 
  9. 9     } 
  10. 0 } 

代碼說明:手勢的常用狀態如下

開始:UIGestureRecognizerStateBegan

改變:UIGestureRecognizerStateChanged

結束:UIGestureRecognizerStateEnded

取消:UIGestureRecognizerStateCancelled

失敗:UIGestureRecognizerStateFailed

3.輕掃手勢(SwipeGestureRecognizer)

在初始化輕掃手勢的時候得指定輕掃的方向,上下左右。 如果要要添加多個輕掃方向,就得添加多個輕掃手勢,不過回調的是同一個方法。

添加輕掃手勢,一個向左一個向右,代碼如下:

  1. 1     //添加輕掃手勢 
  2.  2     UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)]; 
  3.  3     //設置輕掃的方向 
  4.  4     swipeGesture.direction = UISwipeGestureRecognizerDirectionRight; //默認向右 
  5.  5     [self.view addGestureRecognizer:swipeGesture]; 
  6.  6      
  7.  7     //添加輕掃手勢 
  8.  8     UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)]; 
  9.  9     //設置輕掃的方向 
  10. 10     swipeGestureLeft.direction = UISwipeGestureRecognizerDirectionLeft; //默認向右 
  11. 11     [self.view addGestureRecognizer:swipeGestureLeft]; 

回調方法如下:

  1. 1 //輕掃手勢觸發方法 
  2.  2 -(void)swipeGesture:(id)sender 
  3.  3 { 
  4.  4     UISwipeGestureRecognizer *swipe = sender; 
  5.  5     if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) 
  6.  6     { 
  7.  7         //向左輕掃做的事情 
  8.  8     } 
  9.  9     if (swipe.direction == UISwipeGestureRecognizerDirectionRight) 
  10. 10     { 
  11. 11         //向右輕掃做的事情 
  12. 12     } 
  13. 13 } 
  14. 14      

4.捏合手勢(PinchGestureRecognizer)

捏合手勢初始化

  1.   //添加捏合手勢 
  2. 2     UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:)]; 
  3. 3     [self.view addGestureRecognizer:pinchGesture]; 

捏合手勢要觸發的方法(放大或者縮小圖片):

  1.  1 ////捏合手勢觸發方法 
  2.  2 -(void) pinchGesture:(id)sender 
  3.  3 { 
  4.  4      UIPinchGestureRecognizer *gesture = sender; 
  5.  5      
  6.  6     //手勢改變時 
  7.  7     if (gesture.state == UIGestureRecognizerStateChanged) 
  8.  8     { 
  9.  9         //捏合手勢中scale屬性記錄的縮放比例 
  10. 10         _imageView.transform = CGAffineTransformMakeScale(gesture.scale, gesture.scale); 
  11. 11     } 
  12. 12      
  13. 13     //結束后恢復 
  14. 14     if(gesture.state==UIGestureRecognizerStateEnded) 
  15. 15     { 
  16. 16         [UIView animateWithDuration:0.5 animations:^{ 
  17. 17             _imageView.transform = CGAffineTransformIdentity;//取消一切形變 
  18. 18         }]; 
  19. 19     } 
  20. 20 } 

5.拖動手勢(PanGestureRecognizer)

拖動手勢的初始化

  1. //添加拖動手勢 
  2. 2     UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGesture:)]; 
  3. 3     [self.view addGestureRecognizer:panGesture]; 

拖動手勢要做的方法(通過translationInView獲取移動的點,和TouchesMoved方法類似)

  1. 1 //拖動手勢 
  2. 2 -(void) panGesture:(id)sender 
  3. 3 { 
  4. 4     UIPanGestureRecognizer *panGesture = sender; 
  5. 5      
  6. 6     CGPoint movePoint = [panGesture translationInView:self.view]; 
  7. 7      
  8. 8     //做你想做的事兒 
  9. 9 } 

6.旋轉手勢(RotationGestureRecognizer)

旋轉手勢的初始化

  1.  //添加旋轉手勢 
  2. 2     UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGesture:)]; 
  3. 3     [self.view addGestureRecognizer:rotationGesture]; 

旋轉手勢調用的方法:

  1. 復制代碼 
  2.  
  3.  1 //旋轉手勢 
  4.  2 -(void)rotationGesture:(id)sender 
  5.  3 { 
  6.  4      
  7.  5     UIRotationGestureRecognizer *gesture = sender; 
  8.  6      
  9.  7     if (gesture.state==UIGestureRecognizerStateChanged) 
  10.  8     { 
  11.  9         _imageView.transform=CGAffineTransformMakeRotation(gesture.rotation); 
  12. 10     } 
  13. 11      
  14. 12     if(gesture.state==UIGestureRecognizerStateEnded) 
  15. 13     { 
  16. 14          
  17. 15         [UIView animateWithDuration:1 animations:^{ 
  18. 16             _imageView.transform=CGAffineTransformIdentity;//取消形變 
  19. 17         }]; 
  20. 18     } 
  21. 19      
  22. 20 } 

本文鏈接:http://www.cnblogs.com/ludashi/p/3983008.html

責任編輯:chenqingxiang 來源: cnblogs
相關推薦

2022-08-16 15:20:12

微服務IT運維

2011-06-30 10:36:22

JSF

2011-06-30 10:49:27

2022-05-17 12:25:59

物聯網智能建筑樓宇自控

2024-06-20 11:11:07

2020-04-10 14:10:50

人臉識別人工智能華為

2018-04-02 10:45:11

深度學習PaddlePaddl手寫數字識別

2021-08-13 10:01:19

人臉識別人工智能數據

2013-05-07 17:21:09

ELMOS芯片手勢識別

2011-07-08 14:58:16

iPhone Xcode iOS

2013-05-21 11:20:37

Android游戲開發View手勢識別

2009-06-11 19:54:19

Hibernate入門

2013-06-20 10:50:51

Objective-CiOS左右滑動手勢

2022-03-28 07:52:31

H5小游戲開發教程頁面基礎布局

2011-07-12 17:11:13

PHPSHELL

2009-07-17 09:44:40

iBATIS教程

2022-03-24 08:33:58

小游戲項目cmdvue3

2012-02-28 14:07:17

Android觸摸屏手勢識別

2011-07-06 18:07:16

ASP

2011-07-22 18:13:59

IOS IDE Xcode
點贊
收藏

51CTO技術棧公眾號

亚洲精华国产欧美| 97久久中文字幕| 久久久一区二区三区| 国产精品成人播放| 国产成人自拍网站| swag国产精品一区二区| 日本韩国欧美在线| 亚洲激情免费视频| 色就是色亚洲色图| 日韩成人精品视频| 久操成人在线视频| 日韩丰满少妇无码内射| 亚洲精品影片| 欧美亚洲国产一区二区三区| 欧美一级特黄aaaaaa在线看片| 亚洲av成人无码久久精品老人| 麻豆精品蜜桃视频网站| 97在线视频免费看| 日本女人性生活视频| 天天做夜夜做人人爱精品| 91精品国产综合久久久久久漫画 | 成人黄色av网站| 国产成人亚洲精品自产在线 | 欧美黑人性猛交| 精品无码在线观看| 国产一级成人av| 51精品视频一区二区三区| 久久九九国产视频| 国产污视频在线播放| 亚洲乱码国产乱码精品精的特点| 日本黄网免费一区二区精品| 天天舔天天干天天操| 国产精品系列在线观看| 国产欧美在线视频| 中文字幕日韩免费| 国产亚洲激情| 久久久久女教师免费一区| 国产尤物在线播放| 久久精品播放| 日韩在线免费视频| 欧美成人短视频| 精品国产精品国产偷麻豆| 日韩精品中文字幕在线观看 | 激情小说一区| 精品精品国产高清a毛片牛牛| 91插插插影院| 亚洲欧美综合久久久久久v动漫| 91福利精品第一导航| 欧美网站免费观看| 天天综合av| 色综合咪咪久久| 日韩精品一区二区三区色欲av| 91九色porn在线资源| 午夜精品久久久久久久久久久 | 国产ktv在线视频| 亚洲成a天堂v人片| 国产极品在线视频| 亚洲一二三四| 欧美专区亚洲专区| 91视频免费版污| 成人全视频免费观看在线看| 欧美日韩国产高清一区二区| 日本黄色的视频| www.久久爱.com| 日韩欧美一二三| 国产一精品一aⅴ一免费| 国产精品qvod| 亚洲欧美中文另类| 国产午夜精品福利视频| 99久久精品网| 久久久久亚洲精品国产| 成人午夜视频精品一区| 日韩国产欧美三级| 成人精品久久久| 人人妻人人澡人人爽人人欧美一区 | 91精品国产调教在线观看| 欧美精品在线观看| 91国产丝袜播放在线| 久久国产精品久久久久久电车 | 国产色产综合色产在线视频| 先锋影音欧美| 七七久久电影网| 狠狠久久亚洲欧美专区| 亚洲少妇久久久| 亚洲精品一区国产| 亚洲人成网站在线播| 亚洲精品卡一卡二| 99精品福利视频| 国产日韩在线观看av| 老熟妇高潮一区二区高清视频| 91麻豆福利精品推荐| 一本色道久久综合亚洲二区三区| 国产美女情趣调教h一区二区| 欧美性69xxxx肥| 91性高潮久久久久久久| 日韩免费电影在线观看| 日韩在线中文字| 特黄视频免费看| 狠狠色综合播放一区二区| 狠狠色噜噜狠狠狠狠色吗综合| yw193.com尤物在线| 亚洲香肠在线观看| 浓精h攵女乱爱av| 成人爽a毛片免费啪啪红桃视频| 亚洲香蕉av在线一区二区三区| 唐朝av高清盛宴| 免播放器亚洲| 亚洲最大成人网色| 国产永久av在线| 亚洲午夜国产一区99re久久| 爱爱爱爱免费视频| 偷拍精品福利视频导航| 欧美大片免费看| 在线观看黄色国产| 91免费看`日韩一区二区| 在线观看成人免费| 日韩一区二区三区免费| 精品国产1区2区3区| 欧日韩不卡视频| 亚洲一区观看| 国产精品久久久对白| 日本韩国在线视频爽| 欧美丝袜一区二区| 欧美久久久久久久久久久| 欧美hd在线| 国产精品久久久久久久久久久久久| 国产 日韩 欧美 精品| 亚洲欧美激情视频在线观看一区二区三区 | 精品999在线播放| 99鲁鲁精品一区二区三区| 日韩高清不卡一区二区| 欧美精品人人做人人爱视频| 波多一区二区| 欧美成人性福生活免费看| 免费看特级毛片| 韩国午夜理伦三级不卡影院| 视频一区在线免费观看| 精品无人乱码一区二区三区 | 欧美熟妇激情一区二区三区| 一本色道久久| 国内视频一区| 黄色视屏在线免费观看| 亚洲精品不卡在线| 亚洲精品午夜久久久久久久| 成人动漫一区二区| 国产一区二区片| av成人男女| 欧美精品久久一区二区| 黄色av一区二区三区| 性感美女极品91精品| av免费观看不卡| 99在线观看免费视频精品观看| 国产一区在线免费观看| 福利影院在线看| 国产婷婷色综合av蜜臀av| 精品免费囯产一区二区三区| 91丨九色丨国产丨porny| 日本精品一区二区三区四区| 国产精品视频一区二区三区四蜜臂| 欧美中文在线观看| 黄视频在线观看免费| 欧洲人成人精品| 日韩免费av一区| 国产成人综合网| 你真棒插曲来救救我在线观看| 青青草久久爱| 国产精品69av| 米奇精品一区二区三区| 欧美成人伊人久久综合网| 国产网站在线看| 91热门视频在线观看| 日本www.色| 91精品秘密在线观看| 超碰97网站| 电影一区二区三| 色偷偷888欧美精品久久久| 国产精品久久久久久69| 亚洲午夜精品久久久久久久久| 丰满少妇一区二区| 精品无人码麻豆乱码1区2区 | 日韩欧美视频在线免费观看| 久久久久久一级片| 日韩一区二区三区久久| 在线看片一区| 亚洲欧美日韩精品在线| 日韩中文在线| 国产aaa精品| av在线播放国产| 精品亚洲va在线va天堂资源站| 亚洲精品无码久久久久| 亚洲综合另类小说| 法国空姐电影在线观看| 国产精品一区二区在线观看不卡 | 国产精品狼人久久影院观看方式| 97超碰免费在线观看| 久久国产欧美| 欧美中文字幕在线观看视频| 欧美激情在线免费| 99视频在线播放| 草民电影神马电影一区二区| 久久久亚洲欧洲日产国码aⅴ| 搞黄视频免费在线观看| 欧美精品一区二区三区四区| 中文字幕视频在线播放| 亚洲18女电影在线观看| 少妇高潮一区二区三区喷水| 91农村精品一区二区在线| 三上悠亚 电影| 蜜桃av一区二区| 中文字幕无码精品亚洲35| 久久久久午夜电影| 日本视频精品一区| 久久a爱视频| 91成人免费看| 在线成人免费| 国产精品日韩在线播放| 日产福利视频在线观看| 欧美人交a欧美精品| 免费a级在线播放| 国产亚洲美女精品久久久| 人妻无码中文字幕| 日韩免费视频一区| 国产欧美综合视频 | 国产欧美一区二| 日韩精品一二三区| 韩国日本在线视频| 在线日韩视频| 老子影院午夜伦不卡大全| 一区二区三区午夜视频| 亚洲一区美女| 青青草国产成人a∨下载安卓| 久久成人资源| 欧美激情网址| 精品视频免费观看| 国产无遮挡裸体免费久久| 成人免费看片网站| 日韩欧美一级| 99久久自偷自偷国产精品不卡| 欧洲亚洲精品久久久久| 国产精品久久久久久久久久ktv| 日韩脚交footjobhdboots| 97色伦亚洲国产| 日本在线影院| 国产成人a亚洲精品| 性欧美hd调教| 国产精品国产三级国产专播精品人| 欧美大胆成人| 国产成人一区二区三区电影| 国产精品亚洲d| 国产日韩欧美中文| 国产亚洲高清一区| 超碰97网站| 亚洲97av| 日韩久久精品一区二区三区| 成人情趣视频网站| 在线电影看在线一区二区三区| 99精品电影| 日本道在线视频| 国产精品mm| 18禁网站免费无遮挡无码中文| 亚洲少妇自拍| 亚洲色图久久久| 久久福利资源站| 国产精品一级无码| 成人午夜精品在线| 国产手机在线观看| 自拍偷拍国产精品| 精品少妇久久久| 色呦呦国产精品| 91 中文字幕| 日韩欧美一级二级| 日韩二区三区| 日韩网站在线观看| 欧美人体视频xxxxx| 欧美亚洲在线观看| 欧美高清xxx| 国产精品一区二区三区在线| 亚洲人挤奶视频| 一区二区三区国| 亚洲午夜视频| 中文字幕永久视频| 国产成人亚洲综合色影视| 精品无码国产一区二区三区51安| 国产日韩一级二级三级| 朝桐光av在线| 欧美日韩一区二区三区| 中文字幕人妻色偷偷久久| 日韩精品一区在线| 国产人成在线观看| 欧美寡妇偷汉性猛交| 日韩欧美一区二区三区在线观看| 98国产高清一区| 国产一区二区精品福利地址| 欧美一级特黄aaaaaa在线看片| 欧美亚洲一区二区三区| 下面一进一出好爽视频| 久久精品一级爱片| 欧美一级高潮片| 欧美另类z0zxhd电影| 视频二区在线| 欧美大码xxxx| 最新日韩一区| 久久av免费观看| 综合天堂av久久久久久久| 成人一区二区三| 成人a免费在线看| 日韩三级久久久| 在线观看免费亚洲| 污视频在线免费观看| 久久国产精品久久久久| 99久久精品一区二区成人| 国产一区二区久久久| 欧美在线三级| 可以看污的网站| 国产亚洲精品精华液| 日韩欧美三级视频| 精品国产乱码久久久久久牛牛 | 日韩中文欧美| 欧美激情国产精品日韩| 成人av电影在线网| 岛国毛片在线观看| 欧美日韩成人在线一区| 福利小视频在线观看| 欧美综合国产精品久久丁香| jizz性欧美23| 97碰在线视频| 国产精品一品二品| 伊人久久久久久久久久久久久久| 91极品视觉盛宴| 黄色网址在线播放| 国产成人精品视| 亚洲人成伊人成综合图片| 免费成人在线视频网站| av电影在线观看不卡| 日本三级网站在线观看| 欧美草草影院在线视频| 欧美人体视频xxxxx| 成人91视频| 欧美日本免费| www.com日本| 亚洲成av人综合在线观看| 高潮一区二区三区乱码| 欧美高清视频在线观看| 97青娱国产盛宴精品视频| 成年人深夜视频| 粉嫩高潮美女一区二区三区| 久久久久成人网站| 精品精品欲导航| 麻豆网站免费在线观看| 久久精品国产精品国产精品污| 亚洲深夜av| 性欧美一区二区| 欧美亚洲国产一区在线观看网站 | 亚洲成人av免费观看| 亚洲精品福利视频网站| 成人av免费播放| 久久免费成人精品视频| 丝袜连裤袜欧美激情日韩| 久久9精品区-无套内射无码| 国产三级一区二区| 一级黄色片在线观看| 久久99精品久久久久久噜噜| xxxx日韩| 国产精品亚洲αv天堂无码| 欧美极品少妇xxxxⅹ高跟鞋| 一级黄色大片免费观看| 久久久国产精品免费| 国产+成+人+亚洲欧洲在线| 无码播放一区二区三区| 久久久精品天堂| 国产欧美久久久| 欧美亚洲国产视频小说| av亚洲免费| 少妇伦子伦精品无吗| 黑人巨大精品欧美一区二区| lutube成人福利在线观看| 亚洲a成v人在线观看| 国产精品普通话对白| 亚洲aaa视频| 亚洲成人久久电影| 日韩经典一区| 蜜臀精品一区二区| 中文字幕av资源一区| 精品国产伦一区二区三| 热re91久久精品国99热蜜臀| 97精品一区| 色婷婷免费视频| 在线电影一区二区三区| 美女av在线免费看| 自拍偷拍99| 久久综合久久鬼色| www.超碰在线.com| 日韩av电影在线网| 国精品一区二区三区| 日韩中文字幕有码| 精品国产a毛片| va天堂va亚洲va影视| 玩弄japan白嫩少妇hd| 亚洲精品成人a在线观看| 国产黄色片在线播放|