@implementation HomeViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
touchView = [[UIView alloc]initWithFrame:CGRectMake(0, 20, self.view.bounds.size.width, 500)];
touchView.backgroundColor = [UIColor cyanColor];
[self.view addSubview:touchView];
//是否支持多点触摸,默认为NO
touchView.multipleTouchEnabled = YES ;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
if ([touches count] == 2 ) {
//将两个手指信息内容取出来
NSArray *touchArray = [touches allObjects];
UITouch *firstTouch = [touchArray objectAtIndex:0];
UITouch *secondTouch = [touchArray objectAtIndex:1];
//获取两个手指的坐标点
CGPoint firstPoint = [firstTouch locationInView:touchView];
CGPoint secondPoint = [secondTouch locationInView:touchView];
//计算两点距离
double distance = [self distance:firstPoint point:secondPoint];
NSLog(@"distance = %lf",distance);
}
}
//传入两个点参数,计算两点距离
- (double)distance:(CGPoint) p1 point:(CGPoint)p2{
//((x1-x2)平方+(y1-y2)平方)开方 pow平方 sqrt开方
double distance = sqrt(pow(p1.x-p2.x, 2.0)+pow(p1.y-p2.y, 2.0));
return distance;
}
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
if ([touches count] == 2 ) {
//将两个手指信息内容取出来
NSArray *touchArray = [touches allObjects];
UITouch *firstTouch = [touchArray objectAtIndex:0];
UITouch *secondTouch = [touchArray objectAtIndex:1];
//获取两个手指的坐标点
CGPoint firstPoint = [firstTouch locationInView:touchView];
CGPoint secondPoint = [secondTouch locationInView:touchView];
//计算两点距离
double distance = [self distance:firstPoint point:secondPoint];
double subValue = distance -lastValue;
if (subValue > 0) {
NSLog(@"放大");
}else{
NSLog(@"缩小");
}
lastValue = distance;
}
}