文档章节

iOS中的手势

D
 Dumplings
发布于 2016/05/10 16:58
字数 625
阅读 20
收藏 0

手势

单击或者双击手势

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //单击或者双击手势
    [self addTapGesture];
    

}

//单击或者双击手势的方法
-(void)addTapGesture{
    
    //单击
    UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc]init];
    //手指数量
    tap1.numberOfTouchesRequired = 1;
    //单击次数
    tap1.numberOfTapsRequired = 1;
    //添加单击方法
    [tap1 addTarget:self action:@selector(haha:)];
    [self.view addGestureRecognizer:tap1];
    
    
    //双击
    UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc]init];
    //手指数量
    tap2.numberOfTouchesRequired = 1;
    //双击次数
    tap2.numberOfTapsRequired = 2;
    //添加双击方法
    [tap2 addTarget:self action:@selector(haha2:)];
    [self.view addGestureRecognizer:tap2];
    
    //!!!注意:如果单击和双击同时进行,则取消单击手势(否则,如果单纯双击的话,会先出现一个单击,再出现一个双击)
    [tap1 requireGestureRecognizerToFail:tap2];
    
  
}

//单击方法
-(void)haha:(UITapGestureRecognizer *)tap{
    
    NSLog(@"单击");
}

//双击方法
-(void)haha2:(UITapGestureRecognizer *)tap{
    
    NSLog(@"双击");
}

 

 

轻扫手势

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //轻扫手势
    [self addSwipeGesture];

}


//轻扫手势
-(void)addSwipeGesture{
    
    UISwipeGestureRecognizer * swipe = [[UISwipeGestureRecognizer alloc]init];
    
    //设置轻扫方向(如果下面要添加不同方向的方法,则这里不要设置,视具体情况而定)
    swipe.direction = UISwipeGestureRecognizerDirectionUp;
    //添加轻扫方法
    [swipe addTarget:self action:@selector(haha:)];
    [self.view addGestureRecognizer:swipe];
 
}


//轻扫方法
-(void)haha:(UISwipeGestureRecognizer *)swipe{
    
    if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {
        
        NSLog(@"向右轻扫");
    }else if (swipe.direction == UISwipeGestureRecognizerDirectionLeft){
    
        NSLog(@"向左轻扫");
    }else if (swipe.direction == UISwipeGestureRecognizerDirectionUp){
        
        NSLog(@"向上轻扫");
    }
    
}

 

移动手势

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //移动手势
    [self addPanGesture];

}

//移动手势
-(void)addPanGesture{
    
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]init];
    //添加移动手势的方法
    [pan addTarget:self action:@selector(haha:)];
    [self.view addGestureRecognizer:pan];

}

//移动手势的方法
-(void)haha:(UIPanGestureRecognizer *)pan{
    
    NSLog(@"移动");
}

 

 

长按手势

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //长按手势
    [self addLongPressGesture];

}

//长按手势
-(void)addLongPressGesture{
    
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]init];
    
    //长按开始时间(手指按住屏幕5秒,才会开始进入长按时间)
    longPress.minimumPressDuration = 5;
    //长按手势方法
    [longPress addTarget:self action:@selector(haha:)];
    [self.view addGestureRecognizer:longPress];
    
}

//长按手势的方法
-(void)haha:(UILongPressGestureRecognizer *)longPress{
    
    if (longPress.state == UIGestureRecognizerStateBegan) {
        
        NSLog(@"长按开始");
    }else if (longPress.state == UIGestureRecognizerStateEnded){
        
        NSLog(@"长按结束");
    }
    
}

 

 

旋转手势

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //旋转手势
    [self addRotationGesture];
    

}

//旋转手势
-(void)addRotationGesture{
    

    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc]init];
    //旋转手势方法
    [rotation addTarget:self action:@selector(haha:)];
    [self.view addGestureRecognizer:rotation];
    
  
}

//旋转手势的方法
-(void)haha:(UIRotationGestureRecognizer *)rotition{
    
    NSLog(@"旋转");
    
    //获取旋转的弧度制
    CGFloat r = rotition.rotation;
    float degress = 180/M_PI * r;
    NSLog(@"%f", degress);
    
    
}

 

 

捏合手势

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //捏合手势
    [self addPinchGesture];
    

}

//捏合手势
-(void)addPinchGesture{
    
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]init];
    //捏合手势方法
    [pinch addTarget:self action:@selector(haha:)];
    [self.view addGestureRecognizer:pinch];
    
  
}

//捏合手势的方法
-(void)haha:(UIPinchGestureRecognizer *)pinch{
    
    NSLog(@"捏合手势");
    
    CGFloat scale = [pinch scale];
    
    self.view.transform = CGAffineTransformScale(self.view.transform, scale, scale);
    
    
}

 

© 著作权归作者所有

共有 人打赏支持
D
粉丝 0
博文 81
码字总数 41000
作品 0
西安
程序员
私信 提问
全屏手势返回插件 - BBGestureBack

BBGestureBack Full screen return gesture(全屏手势返回 滑动返回 pop 动画效果) iOS 侧滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 现在市场上的主流app都有用到各种侧...

Bonway
2018/05/30
0
0
iOS 全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突

一、前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewController.view上有一个UIScrollView,UIScrollView上有UISlider。俺直接在之前的示例Demo上演示,简书地址:iOS 自定...

且行且珍惜_iOS
2018/08/17
0
0
完美解决ios10及以上Safari无法禁止缩放的问题

移动端web缩放有两种: 1.双击缩放; 2.双指手势缩放。 在iOS 10以前,iOS和Android都可以通过一行meta标签来禁止页面缩放 但iOS 10开始,meta设置在Safari内无效了。 后来在网上看到一个解决...

互联网学徒
2018/07/13
0
0
iOS 8.1.3 发布,减少软件更新所需储存空间

苹果今天发布了 iOS 8.1.3 正式版,修正了各种错误包括部分用户无法在“信息”和 FaceTime 中输入 Apple ID 密码的问题,以及解决了导致 Spotlight 停止显示应用程序结果的问题。还有,iPad ...

oschina
2015/01/28
2.3K
4
ArcGIS for iOS 开发系列(1) – 基本概念

1.1 iOS简介 2006年苹果公司发布了智能手机iPhone,卓越的外形设计和新颖的触摸式交互,令其迅速风靡全球,随后发布的平板电脑iPad同样也取得了巨大成功,二者所搭载的都是iOS智能移动操作系...

长平狐
2012/11/28
867
0

没有更多内容

加载失败,请刷新页面

加载更多

Mysql(Mariadb)数据库主从复制

Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据库中所有操作都...

linux-tao
47分钟前
2
0
Mysql(Mariadb)数据库主从复制

Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据库中所有操作都...

Linux就该这么学
今天
2
0
Mysql(Mariadb)数据库主从复制

Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据库中所有操作都...

xiangyunyan
今天
2
0
Android 自定义Path贝塞尔曲线View实践——旋转的花朵

一、关于贝塞尔曲线 在工业设计方面贝塞尔曲线有很多用途,同样,在Android中,贝塞尔曲线结合Path类可以实现更复杂的图形,这里我们给一个案例,来实现一种旋转的花朵。对于贝赛尔曲线的理解...

IamOkay
今天
3
0
7、redis主从复制和sentinel配置高可用

一:redis主从配置 1、环境准备 master : 192.168.50.10 6179 slave1: 192.168.50.10 6279 slave2: 192.168.50.10 6379 2、redis.conf配置文件配置 master port 6179......

刘付kin
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部