上代码
- (void)pinchAction:(UIPinchGestureRecognizer *)pinchGestureRecognizer{
CGFloat scale = pinchGestureRecognizer.scale;
//放大情况
if(scale > 1.0){
if(self.totalScale > MaxScale) return;
}
//缩小情况
if (scale < 1.0) {
if (self.totalScale < MinScale) return;
}
//直接判断,如果上次情况超过了边界,就不缩放
CGRect superViewFrame = self.topCircleView.frame;
if (superViewFrame.origin.x < 0 ||
(superViewFrame.origin.x + superViewFrame.size.width) > self.frame.size.width ||
superViewFrame.origin.y < 0 ||
(superViewFrame.origin.y + superViewFrame.size.height) > self.frame.size.height) {
scale = 1;
if (pinchGestureRecognizer.state == UIGestureRecognizerStateBegan || pinchGestureRecognizer.state == UIGestureRecognizerStateChanged) {
self.topCircleView.transform = CGAffineTransformScale(self.topCircleView.transform, 1, 1);
self.totalScale *= scale;
pinchGestureRecognizer.scale = 1;
}
return;
}
if (pinchGestureRecognizer.state == UIGestureRecognizerStateBegan || pinchGestureRecognizer.state == UIGestureRecognizerStateChanged) {
self.topCircleView.transform = CGAffineTransformScale(self.topCircleView.transform, scale, scale);
self.totalScale *= scale;
pinchGestureRecognizer.scale = 1;
}
}