- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
//如果只有一个手指触摸屏幕,则不处理捏合操作
if (1 == [touches count]) {
return;
}
NSArray *allTouches = [touches allObjects];
UITouch *firstTouch = [allTouches firstObject];//获取第一根手指
UITouch *secondTouch = [allTouches lastObject];//获取第二根手指
//获取两个手指之前的位置
CGPoint firstPreviousLocation = [firstTouch previousLocationInView:self];
CGPoint secondPreviousLocation = [secondTouch previousLocationInView:self];
//获取两个手指当前位置
CGPoint firstLocation = [firstTouch locationInView:self];
CGPoint secondLocation = [secondTouch locationInView:self];
//获取之前两个点的距离
CGFloat previousDistance = [self distanceOfPoint1:firstPreviousLocation point2:secondPreviousLocation];
//获取当前两个点的距离
CGFloat currentDistance = [self distanceOfPoint1:firstLocation point2:secondLocation];
//求变化的比例(处理previousDistance可能为0的情况,为0除以1)
CGFloat scale = currentDistance / previousDistance ? previousDistance : 1;
//修改视图的大小,按比例缩放
self.bounds = CGRectMake(0, 0, self.bounds.size.width * scale, self.bounds.size.height * scale);
注!!!
通过bounds修改视图的大小,视图的中心位置不变
}