zoukankan      html  css  js  c++  java
  • 手势与触控

     UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 75, 75)];

        imgView.image=[UIImage imageNamed:@"a"];

        imgView.tag=200;

        [self.view addSubview:imgView];

        

        //设置允许触控和执行手势

        imgView.userInteractionEnabled=YES;

        

        //创建点击手势

        UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapGestureClick:)];

        //将创建的点击手势添加到图片对象

        [imgView addGestureRecognizer:tap];

        

        

        //创建拖拽手势

        UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panGestureClick:)];

        [imgView addGestureRecognizer:pan];

        

        

        //创建长按手势

        UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressGestureClick:)];

        [imgView addGestureRecognizer:longPress];

        

        

        //创建旋转手势

        UIRotationGestureRecognizer *rotate=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotateGestureClick:)];

        [imgView addGestureRecognizer:rotate];

        

        

        

        //创建捏合手势

        UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGestureClick:)];

        //捏合手势可以与其他手势同时执行

        pinch.delegate=self;

        [imgView addGestureRecognizer:pinch];

        

        

        //创建横扫和纵扫手势

        UISwipeGestureRecognizer *hs=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(hsClick:)];

        hs.direction=UISwipeGestureRecognizerDirectionLeft|UISwipeGestureRecognizerDirectionRight;

        [self.view addGestureRecognizer:hs];

        

        

        

        UISwipeGestureRecognizer *vs=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(vsClick:)];

        vs.direction=UISwipeGestureRecognizerDirectionDown|UISwipeGestureRecognizerDirectionUp;

        [self.view addGestureRecognizer:vs];

        

        

        

        

    }

    -(void)vsClick:(UISwipeGestureRecognizer *)vs

    {

        NSLog(@"纵扫");

    }

    -(void)hsClick:(UISwipeGestureRecognizer *)hs

    {

        NSLog(@"横扫");

    }

    //当执行捏合手势时调用该方法

    -(void)pinchGestureClick:(UIPinchGestureRecognizer *)pinch

    {

        pinch.view.transform=CGAffineTransformScale(pinch.view.transform, pinch.scale,pinch.scale);

        [pinch setScale:1];

        

    }

    //当执行旋转手势时调用该方法

    -(void)rotateGestureClick:(UIRotationGestureRecognizer *)rotate

    {

        //roate.rotation手指的旋转弧度

        rotate.view.transform=CGAffineTransformRotate(rotate.view.transform, rotate.rotation);

        //保持图片和手指为相同弧度

        [rotate setRotation:0];

    }

    //当执行长按时调用该方法

    //参数名称.view为被添加手势的对象

    -(void)longPressGestureClick:(UILongPressGestureRecognizer*)loginPress

    {

        loginPress.view.center=self.view.center;

    }

    //当执行拖拽手势时执行该方法

    -(void)panGestureClick:(UIPanGestureRecognizer*)pan

    {

        //pan.view为手指点击的对象

        pan.view.center= [pan locationInView:self.view];

    }

    //参数为图片的手势类型

    -(void)tapGestureClick:(UITapGestureRecognizer *)tap

    {

        NSLog(@"tap");

    }

    - (void)didReceiveMemoryWarning

    {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

    //return YES,允许添加手势的对象多个手势同时执行  

    //遵守UIGestureRecognizerDelegate协议

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    {

        return YES;

    }

     (触控)

    //添加图片到页面上

        UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 75, 75)];

        imgView.image=[UIImage imageNamed:@"a"];

        [self.view addSubview:imgView];

        imgView.tag=100;

        //允许当前屏幕支持多点触控

        self.view.multipleTouchEnabled=YES;

        //允许图片对象支持手势与触控

        imgView.userInteractionEnabled=YES;

        

        

        

        //设置导航条右侧按钮

        UIBarButtonItem *rightBtn=[[UIBarButtonItem alloc]initWithTitle:@"Next" style:UIBarButtonItemStylePlain target:self action:@selector(rightBtnClick:)];

        self.navigationItem.rightBarButtonItem=rightBtn;

        

    }

    -(void)rightBtnClick:(UIBarButtonItem*)bt

    {

        _secondController=[[SecondViewController alloc]init];

        _secondController.navigationItem.title=@"Gesture";

        [self.navigationController pushViewController:_secondController animated:YES];

    }

    - (void)didReceiveMemoryWarning

    {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

    //触控屏幕时调用该方法

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {

        NSLog(@"touhesBegan");

        //获得屏幕上的手指个数

        NSLog(@"%i",[touches count]);

    }

    //当手指在屏幕上滑动调用该方法

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

    {

        UIImageView *imgView=(UIImageView *)[self.view viewWithTag:100];

        

        for (UITouch *t in touches) {

            //t.view获得手指点击的空件对象

            if (t.view==imgView) {

                //图片根据点到图片上的手指的位置而移动

                imgView.center=[t locationInView:self.view];

            }

        }

        

        

        NSLog(@"moving");

    }

    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

    {

        NSLog(@"end");

    }

  • 相关阅读:
    2009 中国软件技术英雄会
    《致加西亚的信》一书中的一个隐蔽错误
    英文版XP不能打开带有中文路径的chm文件的解决办法
    NetBeans 时事通讯(刊号 # 49 Mar 17, 2009)
    对《致加西亚的信》的异议
    NetBeans 时事通讯(刊号 # 49 Mar 17, 2009)
    Linux运行时I/O设备的电源管理框架
    groovy正则提取完整版本
    Linux 流量监控软件 NetHogs
    Re: 在北京待着到底为了什么
  • 原文地址:https://www.cnblogs.com/y16879w/p/4433180.html
Copyright © 2011-2022 走看看