捏合手勢目測可以無限放大圖片,但是一般情況下,我們只允許用戶在一定的比例范圍內進行縮放
方案:用一個全局的值記錄總的縮放比例,當超出范圍后就不允許繼續超范圍,只能回到縮放范圍
如果嫌麻煩這里打包好的分類,三行代碼搞定:https://github.com/iOSSinger/SGZoomImage
具體代碼如下:
#import "ViewController.h" #define MaxSCale 2.0 //最大縮放比例 #define MinScale 0.5 //最小縮放比例 #import "UIImageView+Zoom.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @property (nonatomic,assign) CGFloat totalScale; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.totalScale = 1.0; UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)]; [self.imageView addGestureRecognizer:pinch]; } - (void)pinch:(UIPinchGestureRecognizer *)recognizer{ CGFloat scale = recognizer.scale; //放大情況 if(scale > 1.0){ if(self.totalScale > MaxSCale) return; } //縮小情況 if (scale < 1.0) { if (self.totalScale < MinScale) return; } self.imageView.transform = CGAffineTransformScale(self.imageView.transform, scale, scale); self.totalScale *=scale; recognizer.scale = 1.0; } @end