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素材

  • 2012年05月21日 08:47
  • 1.76MB
  • 下载

#Objective - C - UI-design - 第四天 -UIKit框架-UIKit-事件手势-刮刮乐小游戏

响应者 iOS中所有能响应事件(触摸、晃动、远程事件)的对象都是响应者。 系统定义了一个抽象的父类UIResponder来表示响应者。 其子类都是响应者。 阻断响应者链 响应者链可以被打断。无法完成检...

cocos2d-x 3.x 关于cocostudio的UI将事件吃掉,场景Layer无法响应手势的问题解决方法

在使用了UI编辑器 http://www.cocoachina.com/bbs/read.php?tid=197606
  • sonikk
  • sonikk
  • 2014年08月02日 20:21
  • 3772

UI day 5 target...action模式 代理模式 手势识别器

第一种模式 target…….action 第一步 //创建ActionViewController对象     ActionViewController  *actionVC = [[Acti...

UI - UIGestureRecognizer 手势

UIGestureRecognizer里有7个手势,下面介绍3种常用的手势- (void)viewDidLoad { [super viewDidLoad]; // Do any ad...

UI中的手势部分

- (void)viewDidLoad {     [super viewDidLoad];     // Do any additional setup after loading t...
  • yt_30
  • yt_30
  • 2015年02月04日 14:18
  • 294

UI 手势

Tap / longPress / Rotation / Swipe / Pan / ScreenEdgePan

UI初级连载十一-------触摸与手势

//当子视图超出自己的frame时,是否剪切子视图 self.clipsToBounds = YES; //是否开启多点触控 self.multipleTouchEnabled = ...

UI-设计模式 手势处理

1. 设计模式: 面向对象的编程核心思想:高内聚 低耦合 使用target action实现解耦 //MyButton.h文件 用UIView模拟一个按钮 #import @inter...

(素材源码)猫猫学IOS(三十五)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。

猫猫分享,必须精品原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 源码:http://d...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI手势
举报原因:
原因补充:

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