获取触摸的两点距离

(1)设置根视图控制器

(2)

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    //设置背景颜色
    self.view.backgroundColor = [UIColor grayColor];
    
    //开启多点触摸
    self.view.multipleTouchEnabled = YES;
    
}

//触摸移动
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

    if (touches.count == 2) {
        <span style="color:#ff0000;">//将集合转换成数组</span>
        NSArray *touchArrary = [touches allObjects];
        //取出两个touch
        UITouch *touch1 = touchArrary[0];
        UITouch *touch2 = touchArrary[1];
        
        //取出touch当前所在的坐标
        CGPoint p1 = [touch1 locationInView:self.view];
        CGPoint p2 = [touch2 locationInView:self.view];
        
        //计算现在两点之间的距离
        CGFloat distance1 = [self distanceTwoPoint:p1 WithPoint:p2];
        
        //取得上两点的坐标
        CGPoint lastP1 = [touch1 previousLocationInView:self.view];
        CGPoint lastP2 = [touch2 previousLocationInView:self.view];
        
        //计算上两点之间的距离
        CGFloat distance2 = [self distanceTwoPoint:lastP1 WithPoint:lastP2];
        
        if (distance1 > distance2) {
            NSLog(@"放大了");
        }else if (distance1 < distance2) {
            NSLog(@"缩小了");
        }
        
    }
}

//计算两点之间的距离
- (CGFloat)distanceTwoPoint:(CGPoint)p1 WithPoint:(CGPoint)p2 {

    /*
     ((x1-x2)平方 + (y1 - y2)平方)开方
     */
    //取得x和y的值
    CGFloat x1 = p1.x;
    CGFloat y1 = p1.y;
    
    CGFloat x2 = p2.x;
    CGFloat y2 = p2.y;
    
    CGFloat distance = sqrtf(pow(x1-x2, 2) + pow(y1-y2, 2));
    
    return distance;
    
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值