触摸和手势

//

//  ViewController.m

//  UITouchTEST

//

//  Created by  on 16/7/21.

//  Copyright © 2016. All rights reserved.

//


#import "ViewController.h"


@interface ViewController (){

    UIView *_view;

}

//初始化数据源

-(void)initializeDataSource;

//初始化用户界面

-(void)initializeUserInterface;


-(void)processGesture:(UIGestureRecognizer *)gesture;


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    [selfinitializeDataSource];

    [selfinitializeUserInterface];


}


//初始化数据源

-(void)initializeDataSource{

    

}


//初始化用户界面

-(void)initializeUserInterface{

    

    _view = [[UIViewalloc]initWithFrame:CGRectMake(0,0, 200,200)];

    [_viewsetCenter:CGPointMake(CGRectGetMidX(self.view.bounds),CGRectGetMidY(self.view.bounds))];

    [_viewsetBackgroundColor:[UIColorredColor]];

    [self.viewaddSubview:_view];

    

    

    UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(processGesture:)];

    [tap setNumberOfTapsRequired:2];

    

    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(processGesture:)];

    

    [_viewaddGestureRecognizer:tap];

    [_viewaddGestureRecognizer:pinch];

    

    

}



//触摸移动手势

-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    UITouch *touch = [touchesanyObject];

    if(touch.view==_view){

        CGPoint previousLocation = [touchpreviousLocationInView:_view];

        CGPoint currentLocation = [touchlocationInView:_view];

        CGPoint LocationOffset =CGPointMake(currentLocation.x-previousLocation.x, currentLocation.y-previousLocation.y);

        

        [_viewsetCenter:CGPointMake(_view.center.x+LocationOffset.x,_view.center.y+LocationOffset.y)];

    }

}


-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    [UIViewbeginAnimations:@"回到中心"context:nil];

    [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

    [UIViewsetAnimationDuration:0.6];

    [_viewsetCenter:CGPointMake(CGRectGetMidX(self.view.bounds),CGRectGetMidY(self.view.bounds))];

    [UIViewcommitAnimations];

}



//proce

-(void)processGesture:(UIGestureRecognizer *)gesture{

    

    if([gestureisKindOfClass:[UITapGestureRecognizerclass]]){

        NSLog(@"轻巧两次");

    }elseif([gestureisKindOfClass:[UIPinchGestureRecognizerclass]]){

        staticCGFloat previousScale;

        UIPinchGestureRecognizer *pinch = (UIPinchGestureRecognizer *)gesture;

        

        if(pinch.state ==UIGestureRecognizerStateBegan){

            previousScale = pinch.scale;

        }

        elseif(pinch.state==UIGestureRecognizerStateChanged){

            _view.transform =CGAffineTransformScale(_view.transform, (pinch.scale-previousScale)/2+1, (pinch.scale-previousScale)/2+1);

            

            previousScale = pinch.scale;

        }

        

        

    }

    else{

        NSLog(@"未识别的手势");

    }

    

    

    

}






@end


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值