UI手势

原创 2016年05月31日 14:58:41

   UI手势就是给UI增加手势,大致可分为6种:

    UITapGestureRecognizer   //Tap(点击)

    UIPinchGestureRecognizer    //pin(捏合)

    UIRotationGestureRecognizer   //rotation(旋转)

    UISwipeGestureRecognizer  //swipe(滑动,快速的移动,用于监测滑动的方向)

    UIPanGestureRecognizer   //pan(拖动,慢速移动,用于监测偏移的量)

    UILongPressGestureRecognizer   //longPress(长按)

    //可以把它看作是一块操作的区域

    UIView *tapView = [[UIView alloc]initWithFrame:CGRectMake(10, 50, 300, 500)];

    tapView.backgroundColor = [UIColor redColor];

    [self.view addSubview:tapView];

    //单击,必须写冒号

    UITapGestureRecognizer *singTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(singleTap:)];

    //点击的次数

    singTap.numberOfTapsRequired = 1;//单击

    singTap.numberOfTouchesRequired = 1;//手指个数

    [tapView addGestureRecognizer:singTap];

    //双击

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

    doubleTap.numberOfTapsRequired = 2;

    [tapView addGestureRecognizer:doubleTap];

      //手势冲突

    //这句代码非常关键,双击手势确定监测失败才会触发单击手势的操作(意思就是说:单击手势和双击手势同时存在优先执行双击手势)

    [singTap requireGestureRecognizerToFail:doubleTap];

    //捏合

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

    //一般用比例,不用速度

    [tapView addGestureRecognizer:pinch];

- (void)pinch:(UIPinchGestureRecognizer*)pinch {

    

    NSLog(@"捏合:%f",pinch.scale);

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

//由于缩放的时候会在上次的基础上缩放,所以要设置在原来的基础上缩放

    pinch.scale = 1;

}

//旋转

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

    [tapView addGestureRecognizer:rotation];

- (void)rotation:(UIRotationGestureRecognizer*)rotation {

    NSLog(@"旋转:%f",rotation.rotation);

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

    //如果不设置为0,就会转得非常快

    rotation.rotation = 0;

}

 //长按

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

    [tapView addGestureRecognizer:longPress];


    //滑动

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

    swipe.direction = UISwipeGestureRecognizerDirectionRight;

    [tapView addGestureRecognizer:swipe];

- (void)swipe:(UISwipeGestureRecognizer*)swipe {

    //移动

    //获取当前viewlocation

    CGPoint point  = [swipe locationInView:self.view];

    swipe.view.transform = CGAffineTransformMakeTranslation(point.x, point.y);

}





版权声明:本文为博主原创文章,未经博主允许不得转载。

UI高级--触摸与手势

1.触摸事件的处理方式 (1)事件类型 触摸事件(触摸手机屏幕) 运动事件(如微信的摇一摇) 远程控制事件(如蓝牙) (2)响应者类通过复写以下方法,可以监听触摸事件 /...
  • qq_26475319
  • qq_26475319
  • 2016年08月01日 20:58
  • 255

做项目过程中遇到的问题及解决----UIGesture手势与UI控件点击的事件冲突解决

在做项目中为了简单的实现键盘随时能隐藏,就在self.view上添加了一个命名为content的ScrollView,然后再content内部需要填充一个TableView,这时候在content上增...
  • zhanglei1239
  • zhanglei1239
  • 2015年10月15日 10:44
  • 582

手势 各大集锦 UI iOS

UITapGestureRecognizer、 UILongPressGestureRecongnizer是最基础的两个手势。 给一个视图添加Tap手势:      //...
  • bellazhouyi
  • bellazhouyi
  • 2015年09月06日 22:00
  • 297

BaiduMap---百度地图官方Demo之UI控制功能(介绍开关手势功能和显示隐藏UI控件)

  • IT1039871366
  • IT1039871366
  • 2015年07月02日 11:13
  • 5139

iOS开发之UI手势

基础手势- (UIImageView *)imageView{ if (!_imageView) { _imageView = [[UIImageView alloc] ini...
  • qq_35757299
  • qq_35757299
  • 2016年09月19日 16:03
  • 563

九宫格安全手势锁

这些东西是从网上搜罗的,自己整理了然后以后自己用着方便,东西可以直接用,demo下载 效果图就不传了,直接运行就能看效果,最好还是下载下来看一下,博客上可能有漏说的,开发工具eclipse 直接上...
  • LuckChouDog
  • LuckChouDog
  • 2015年07月20日 10:08
  • 1497

手势(UIGestureXXX)使用详解

1、UIGestureRecognizerState说明如下: typedef enum {     UIGestureRecognizerStatePossible, //识别器在未识别出它的手...
  • BlackWolfSky
  • BlackWolfSky
  • 2016年05月13日 08:40
  • 368

UI手势

这个手势的效果 主要是Viewcontroller.h的实现文件import “ViewController.h”@interface ViewController () { UIVie...
  • baidu_30087715
  • baidu_30087715
  • 2015年08月29日 17:34
  • 136

UI 手势

Tap / longPress / Rotation / Swipe / Pan / ScreenEdgePan
  • bellazhouyi
  • bellazhouyi
  • 2015年12月01日 20:50
  • 160

ui手势

-(void)changeValue:(UISegmentedControl *)sender {     for(UIGestureRecognizer *ges in imgV.ge...
  • u010875210
  • u010875210
  • 2013年09月05日 21:33
  • 238
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI手势
举报原因:
原因补充:

(最多只允许输入30个字)