日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer...

發布時間:2024/4/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先新建一個基于Sigle view Application的項目,名為GestureTest;我的項目結構如下:

?

往viewController.xib文件里拖動一個imageView,并使覆蓋整個屏幕,改動屬性為:

?

viewController.h文件:

?

[cpp]viewplaincopy

?

1.?????#import?<UIKit/UIKit.h>??

2.???????

3.?????@interface?ViewController?:?UIViewController{??

4.?????????IBOutlet?UIImageView?*imageView;??

5.?????}??

6.?????@property?(nonatomic,retain)IBOutlet?UIImageView?*imageView;??

7.?????@end??

并使xib文件里的imageView與之連接;

?

然后是viewController.m文件的實現部分:

?

[cpp]viewplaincopy

?

1.?????@synthesize?imageView;??

2.???????

3.?????CGFloat?lastScaleFactor=1;//放大、縮小??

4.?????CGFloat??netRotation;//旋轉??

5.?????CGPoint?netTranslation;//平衡??

6.?????NSArray?*images;//圖片數組??

7.?????int?imageIndex=0;//數組下標??

8.???????

9.?????-?(void)viewDidLoad??

10.???{??

11.???????//1、創建手勢實例,并連接方法handleTapGesture,點擊手勢??

12.???????UITapGestureRecognizer?*tapGesture=[[UITapGestureRecognizer?alloc]initWithTarget:self?action:@selector(handleTapGesture:)];??

13.???????//設置手勢點擊數,雙擊:點2下??

14.???????tapGesture.numberOfTapsRequired=2;??

15.???????//?imageView添加手勢識別??

16.???????[imageView?addGestureRecognizer:tapGesture];??

17.???????//釋放內存??

18.???????[tapGesture?release];??

19.?????????

20.???????//2、手勢為捏的姿勢:按住option按鈕配合鼠標來做這個動作在虛擬器上??

21.???????UIPinchGestureRecognizer?*pinchGesture=[[UIPinchGestureRecognizer?alloc]initWithTarget:self?action:@selector(handlePinchGesture:)];??

22.???????[imageView?addGestureRecognizer:pinchGesture];//imageView添加手勢識別??

23.???????[pinchGesture?release];??

24.?????????

25.???????//3、旋轉手勢:按住option按鈕配合鼠標來做這個動作在虛擬器上??

26.???????UIRotationGestureRecognizer?*rotateGesture=[[UIRotationGestureRecognizer?alloc]initWithTarget:self?action:@selector(handleRotateGesture:)];??

27.???????[imageView?addGestureRecognizer:rotateGesture];??

28.???????[rotateGesture?release];??

29.?????????

30.???????//4、拖手勢??

31.???????UIPanGestureRecognizer?*panGesture=[[UIPanGestureRecognizer?alloc]initWithTarget:self?action:@selector(handlePanGesture:)];??

32.??????//?[imageView?addGestureRecognizer:panGesture];??

33.???????[panGesture?release];??

34.?????????

35.???????//5、劃動手勢??

36.???????images=[[NSArray?alloc]initWithObjects:@"cell.jpg",@"heihua.jpg",@"xuanyi.jpg",?nil];??

37.???????//右劃??

38.???????UISwipeGestureRecognizer?*swipeGesture=[[UISwipeGestureRecognizer?alloc]initWithTarget:self?action:@selector(handleSwipeGesture:)];??

39.???????[imageView?addGestureRecognizer:swipeGesture];??

40.???????[swipeGesture?release];??

41.???????//左劃??

42.???????UISwipeGestureRecognizer?*swipeLeftGesture=[[UISwipeGestureRecognizer?alloc]initWithTarget:self?action:@selector(handleSwipeGesture:)];??

43.???????swipeGesture.direction=UISwipeGestureRecognizerDirectionLeft;//不設置黑夜是右??

44.???????[imageView?addGestureRecognizer:swipeLeftGesture];??

45.???????[swipeLeftGesture?release];??

46.?????????

47.???????//6、長按手勢??

48.???????UILongPressGestureRecognizer?*longpressGesutre=[[UILongPressGestureRecognizer?alloc]initWithTarget:self?action:@selector(handleLongpressGesture:)];??

49.???????//長按時間為1秒??

50.???????longpressGesutre.minimumPressDuration=1;??

51.???????//允許15秒中運動??

52.???????longpressGesutre.allowableMovement=15;??

53.???????//所需觸摸1次??

54.???????longpressGesutre.numberOfTouchesRequired=1;??

55.???????[imageView?addGestureRecognizer:longpressGesutre];??

56.???????[longpressGesutre?release];??

57.?????????

58.???????[super?viewDidLoad];??

59.???????//?Do?any?additional?setup?after?loading?the?view,?typically?from?a?nib.??

60.???}??

61.???//雙擊屏幕時會調用此方法,放大和縮小圖片??

62.???-(IBAction)handleTapGesture:(UIGestureRecognizer*)sender{??

63.???????//判斷imageView的內容模式是否是UIViewContentModeScaleAspectFit,該模式是原比例,按照圖片原時比例顯示大小??

64.???????if(sender.view.contentMode==UIViewContentModeScaleAspectFit){??

65.???????????//把imageView模式改成UIViewContentModeCenter,按照圖片原先的大小顯示中心的一部分在imageView??

66.???????????sender.view.contentMode=UIViewContentModeCenter;??

67.???????}else{??

68.???????????sender.view.contentMode=UIViewContentModeScaleAspectFit;??

69.???????}??

70.???}??

71.???//捏的手勢,使圖片放大和縮小,捏的動作是一個連續的動作??

72.???-(IBAction)handlePinchGesture:(UIGestureRecognizer*)sender{??

73.???????//得到sender捏手勢的大小??

74.???????CGFloat?factor=[(UIPinchGestureRecognizer*)sender?scale];??

75.???????if(factor>1){??

76.???????????//圖片放大??

77.???????????sender.view.transform=CGAffineTransformMakeScale(lastScaleFactor+(factor-1),?(lastScaleFactor+(factor-1)));??

78.??????????????????????????????????????????????????????????????

79.???????}else{??

80.???????????//縮小??

81.???????????sender.view.transform=CGAffineTransformMakeScale(lastScaleFactor*factor,?lastScaleFactor*factor);??

82.??????????????????????????????????????????????????????????????

83.???????}??

84.???????//狀態是否結束,如果結束保存數據??

85.???????if(sender.state==UIGestureRecognizerStateEnded){??

86.???????????if(factor>1){??

87.???????????????lastScaleFactor+=(factor-1);??

88.???????????}else{??

89.???????????????lastScaleFactor*=factor;??

90.???????????}??

91.???????}??

92.???}??

93.???//旋轉手勢??

94.???-(IBAction)handleRotateGesture:(UIGestureRecognizer*)sender{??

95.???????//浮點類型,得到sender的旋轉度數??

96.???????CGFloat?rotation=[(UIRotationGestureRecognizer*)sender?rotation];??

97.???????//旋轉角度CGAffineTransformMakeRotation??

98.???????CGAffineTransform?transform=CGAffineTransformMakeRotation(rotation+netRotation);??

99.???????//改變圖像角度??

100.??????sender.view.transform=transform;??

101.??????//狀態結束,保存數據??

102.??????if(sender.state==UIGestureRecognizerStateEnded){??

103.??????????netRotation+=rotation;??

104.??????}??

105.?????????

106.??}??

107.??//拖手勢??

108.??-(IBAction)handlePanGesture:(UIGestureRecognizer*)sender{??

109.??????//得到拖的過程中的xy坐標??

110.??????CGPoint?translation=[(UIPanGestureRecognizer*)sender?translationInView:imageView];??

111.??????//平移圖片CGAffineTransformMakeTranslation??

112.??????sender.view.transform=CGAffineTransformMakeTranslation(netTranslation.x+translation.x,?netTranslation.y+translation.y);??

113.??????//狀態結束,保存數據??

114.??????if(sender.state==UIGestureRecognizerStateEnded){??

115.??????????netTranslation.x+=translation.x;??

116.??????????netTranslation.y+=translation.y;??

117.??????}??

118.????????

119.??}??

120.??//劃動手勢??

121.??-(IBAction)handleSwipeGesture:(UIGestureRecognizer*)sender{??

122.??????//劃動的方向??

123.??????UISwipeGestureRecognizerDirection?direction=[(UISwipeGestureRecognizer*)?sender?direction];??

124.??????//判斷是上下左右??

125.??????switch?(direction)?{??

126.??????????case?UISwipeGestureRecognizerDirectionUp:??

127.??????????????NSLog(@"up");??

128.??????????????break;??

129.??????????case?UISwipeGestureRecognizerDirectionDown:??

130.??????????????NSLog(@"down");??

131.??????????????break;??

132.??????????case?UISwipeGestureRecognizerDirectionLeft:??

133.??????????????NSLog(@"left");??

134.??????????????imageIndex++;//下標++??

135.??????????????break;??

136.??????????case?UISwipeGestureRecognizerDirectionRight:??

137.??????????????NSLog(@"right");??

138.??????????????imageIndex--;//下標--??

139.??????????????break;??

140.??????????default:??

141.??????????????break;??

142.??????}??

143.??????//得到不越界不<0的下標??

144.??????imageIndex=(imageIndex<0)?([images?count]-1):imageIndex%[images?count];??

145.??????//imageView顯示圖片??

146.??????imageView.image=[UIImage?imageNamed:[images?objectAtIndex:imageIndex]];??

147.????????

148.??}??

149.??//長按手勢??

150.??-(IBAction)handleLongpressGesture:(UIGestureRecognizer*)sender{??

151.??????//創建警告??

152.??????UIActionSheet?*actionSheet=[[UIActionSheet?alloc]initWithTitle:@"Image?options"?delegate:self?cancelButtonTitle:nil?destructiveButtonTitle:nil?otherButtonTitles:@"Save?Image",@"Copy",?nil];??

153.??????//當前view顯示警告??

154.??????[actionSheet?showInView:self.view];??

155.??????[actionSheet?release];??

156.??}??

157.??-(void)dealloc{??

158.??????[images?release];??

159.??????[imageView?release];??

160.??????[super?dealloc];??

161.??} ?

轉載于:https://www.cnblogs.com/yjg2014/p/3988192.html

總結

以上是生活随笔為你收集整理的iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.亚洲欧美| 一本色道久久综合亚洲精品图片 | 在线不欧美 | 精品视频在线免费看 | ww黄色 | 国产视频一区二区在线 | 国产又爽又黄无码无遮挡在线观看 | 成人h动漫精品一区二区无码 | 正在播放国产一区 | 天天干天天搞天天射 | 国产精品资源网 | 看黄色的网站 | 91精品国产aⅴ一区二区 | 激情视频一区二区 | 国产高清视频在线观看 | 午夜影院视频 | 日韩性xxxx | www国产在线观看 | 精品人妻一区二区免费视频 | 激情中文字幕 | 国产妇女馒头高清泬20p多 | 亚洲毛片网 | 久久久久无码精品国产sm果冻 | 最新激情网 | 蜜桃视频在线观看www | 日韩一区欧美一区 | 在线观看小视频 | 精品国产18久久久久久 | av地址在线| 久久久久夜 | 中文字幕在线观看高清 | 日韩性生活视频 | 国产精品久久久久久久久免费桃花 | 女同一区二区 | 午夜婷婷在线观看 | 日韩 欧美 亚洲 国产 | 天天射网 | 午夜高清 | 岛国av免费在线 | 红桃视频成人在线 | 精品国产乱 | 天堂网av在线 | 久久不射网 | 少妇愉情理伦片bd | 久久久精品日韩 | 国产精品无码久久久久久 | 中文字幕1区 | 久久久久久久av | 韩国毛片视频 | 超碰在线人人 | 91精品婷婷国产综合久久蝌蚪 | 中文字幕人妻熟女人妻a片 麻豆91视频 | 白丝女仆被免费网站 | 污污的视频在线观看 | 女人一区二区 | 免费看黄色网址 | 国产视频手机在线 | 日韩香蕉网 | 国产成人一区二区三区免费看 | 亚洲乱码国产乱码精品精大量 | 国产黄色精品视频 | 国产精品久久久久久一区二区三区 | 97成人人妻一区二区三区 | 亚洲区综合 | 欧美特级一级片 | 亚洲天堂av中文字幕 | 99香蕉网 | 天天操婷婷 | 一本大道综合伊人精品热热 | jizz亚洲女人高潮大叫 | 免费性片 | 欧美日韩精品在线播放 | 成人午夜激情 | 一个人免费在线观看视频 | 日韩精品在线免费观看视频 | 亚洲欧美在线综合 | 国产高清一二三区 | 少妇久久久久久被弄高潮 | 伊人久久一区二区三区 | 极品淫少妇 | av电影在线观看 | 亚洲欧美日本在线 | 夜夜春影院 | 日本少妇高潮抽搐 | 女同hd系列中文字幕 | 少妇做爰免费理伦电影 | 91超碰在| 欧美精品自拍视频 | 日韩精品一区中文字幕 | 看毛片的网站 | xxx69美国 | 国产 中文 字幕 日韩 在线 | 久久精品色欲国产AV一区二区 | 白洁av | 欧美黑人粗大 | 日韩不卡免费视频 | 在线视频精品免费 | 91精东传媒理伦片在线观看 | 成人动漫在线免费观看 |