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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

iOS开发——手势识别器(用手势实现图片旋转和缩小放大)

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发——手势识别器(用手势实现图片旋转和缩小放大) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS開發中,除了有關觸摸的這組方法來控制用戶的手指觸控外,還可以用UIGestureRecognize的衍生類來進行判斷,方便了開發。
UIGestureRecognize的子類類別有以下幾種:

  • UITapGestureRecognizer //輕拍識別器
  • UIPinchGestureRecognizer //捏合識別器
  • UIRotationGestureRecognizer //旋轉識別器
  • UISwipeGestureRecognizer //掃動識別器
  • UIPanGestureRecognizer //拖動識別器
  • UILongPressGestureRecognizer //長按識別器

下面的例子我是用UIPinchGestureRecognizer和UIRotationGestureRecognizer通過手勢實現圖片旋轉和縮小放大。

ViewController.m中的代碼如下;

#import "ViewController.h"@interface ViewController ()@property(nonatomic,strong) UIImageView *imageView;
@property(nonatomic) CGFloat lastRotation;-(void)changeImageSize:(UIPinchGestureRecognizer *)recognizer;
-(void)rotateImage:(UIRotationGestureRecognizer *)rotateRecognizer;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor = [UIColor whiteColor];//在view上添加一個ImageViewUIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Totoro"]];image.frame = CGRectMake(0, 0, 128, 128);self.imageView = image;self.imageView.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);[self.view addSubview:self.imageView];//添加捏合手勢識別器,changeImageSize:方法實現圖片的放大與縮小UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(changeImageSize:)];[self.view addGestureRecognizer:pinchRecognizer];//添加旋轉手勢識別器,rotateImage:方法實現圖片的旋轉UIRotationGestureRecognizer *rotateRecognizer = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotateImage:)];[self.view addGestureRecognizer:rotateRecognizer];}-(void)changeImageSize:(UIPinchGestureRecognizer *)recognizer
{CGRect frame = self.imageView.frame;//監聽兩手指滑動的距離,改變imageView的frameframe.size.width = recognizer.scale*128;frame.size.height = recognizer.scale*128;self.imageView.frame = frame;//保證imageView中心不動self.imageView.center =CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
}-(void)rotateImage:(UIRotationGestureRecognizer *)rotateRecognizer
{//改變imageView的角度,使圖片旋轉if ([rotateRecognizer state]==UIGestureRecognizerStateEnded) {self.lastRotation = 0.0;return;}CGAffineTransform currentTransform = self.imageView.transform;CGFloat rotation = 0.0 - (self.lastRotation - rotateRecognizer.rotation);CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform,rotation);self.imageView.transform = newTransform;self.lastRotation = rotateRecognizer.rotation;
}@end

運行代碼,實現效果如下:

轉載于:https://www.cnblogs.com/ahtchxw/p/5466603.html

總結

以上是生活随笔為你收集整理的iOS开发——手势识别器(用手势实现图片旋转和缩小放大)的全部內容,希望文章能夠幫你解決所遇到的問題。

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