iOS手势

作者: 我不白先生 | 来源:发表于2020-11-03 14:41 被阅读0次

1.手势
将用户物理性触屏操作转换成对象存储起来,所有手势的父类UIGestureReconginzer
手势包括:
Tap:点击手势
Swipe:轻扫手势
注意:以上两个手势是一次性手势


LongPress:长按手势
Pan:拖拽手势
Pinch:捏合手势
Rotation:旋转手势
如何使用手势:
1创建指定手势对象,在创建时设定好当该类型手势触发时,系统会自动调用什么方法
2设置手势的核心属性
3将手势添加到某个视图中,即代表,当用户在该视图上触发了对应的手势,系统会自动捕获并调用手势对应的方法


image.png

ViewController.m

#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController
//点击手势
-(void)tap{
    UITapGestureRecognizer *tap= [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];
    //设置核心 属性
    //需要几个手指点
    //tap.numberOfTouchesRequired = 2;
    tap.numberOfTapsRequired = 1;
    //将手势添加到视图上
    [self.imageView addGestureRecognizer:tap];
}
//模拟两只手按住alt
-(void)tap:(UITapGestureRecognizer*)gesture{
    NSLog(@"点击了 imageView");
}
//轻扫
-(void)swipe {
    UISwipeGestureRecognizer *swipe= [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
    //设置核心 属性
    //只能上下或左右
    swipe.direction = UISwipeGestureRecognizerDirectionUp |UISwipeGestureRecognizerDirectionDown;    //将手势添加到视图上
    [self.imageView addGestureRecognizer:swipe];
}
-(void)swipe:(UISwipeGestureRecognizer*)gesture{
    NSLog(@"点击了 imageView");
}
//长按
-(void)longPress{
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
    longPress.minimumPressDuration = 3;
    [self.imageView addGestureRecognizer:longPress];
}
-(void)longPress:(UILongPressGestureRecognizer*)gestrue{
    if(gestrue.state == UIGestureRecognizerStateBegan){
        NSLog(@"开始长按");
    }
    else if(gestrue.state == UIGestureRecognizerStateChanged)
    {
         NSLog(@"长按变化触发了");
    }else if(gestrue.state == UIGestureRecognizerStateEnded){
         NSLog(@"结束长按");
    }
}
-(void)pan{
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];
    [self.imageView addGestureRecognizer:pan];
}
-(void)pan:(UIPanGestureRecognizer*)gesture{
    CGPoint position = [gesture locationInView:self.view];
    self.imageView.center = position;
}
-(void)pinch{
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinch:)];
    [self.imageView addGestureRecognizer:pinch];
}
-(void)pinch:(UIPinchGestureRecognizer*)gesture{
    NSLog(@"%f",gesture.scale);
}
//旋转手势
-(void)rotation{
    UIRotationGestureRecognizer *rotation= [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotation:)];
    [self.imageView addGestureRecognizer:rotation];
}
-(void)rotation:(UIRotationGestureRecognizer*)gesture{
    NSLog(@"%f",gesture.rotation);
}
- (void)viewDidLoad {
    [super viewDidLoad];
    //[self tap];
   //  [self swipe];
    //[self longPress];这不晓得问啥在模拟器实现不了
   // [self pan];
   // [self pinch];
    [self rotation];
}

相关文章

网友评论

      本文标题:iOS手势

      本文链接:https://www.haomeiwen.com/subject/lhrbvktx.html