IOS学习 触摸和手势UITouch 捏合

@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;

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值