您的位置:首页 > 产品设计 > UI/UE

IOS学习 触摸和手势UITouch 捏合

2016-03-14 17:49 323 查看
@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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: