·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> UIGestureRecognizer手势操作

UIGestureRecognizer手势操作

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

UIGestureRecognizer类,用来检测,识别用户使用设备时所用的手势,定义了所有手势的基本行为.以下是UIGestureRecognizer子类,哟关于处理具体的用户手势行为。

单击手势

单击手势
UITapGestureRecognizer

UITapGestureRecognizer *singleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(singleTap:)];
    [self.view addGestureRecognizer:singleTap];
//单击事件
-(void)singleTap:(UITapGestureRecognizer *)tapgestrue
{
    NSLog(@"单击");
}


双击手势

UITapGestureRecognizer
UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];
    doubleTap.numberOfTapsRequired=2;
    [self.view addGestureRecognizer:doubleTap];
    //区别单击双击手势
    [singleTap requireGestureRecognizerToFail:doubleTap];

//双击点击事件
-(void)doubleTap:(UITapGestureRecognizer *)taggestrue
{
    NSLog(@"双击");
}

轻扫手势

UISwipeGestureRecognizer *swipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
    //设置轻扫方向,默认向右    swipeGesture.direction=UISwipeGestureRecognizerDirectionDown;
    [self.view addGestureRecognizer:swipeGesture];

//轻扫事件
-(void)swipe:(UISwipeGestureRecognizer *)swipeGesture
{
    NSLog(@"轻扫手势");
}

//平移

UIPanGestureRecognizer *panGesture=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];
    [self.view addGestureRecognizer:panGesture];
   //平移事件
-(void)pan:(UIPanGestureRecognizer *)pan
{
    CGPoint point=[pan locationInView:self.view];
    NSLog(@"%@",NSStringFromCGPoint(point));
}

//长按手势

 UILongPRessGestureRecognizer *longPressGesture=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
    longPressGesture.minimumPressDuration=2;
    [self.view addGestureRecognizer:longPressGesture];
//长按手势事件
-(void)longPress:(UILongPressGestureRecognizer *)longPress
{
    //长按离开时一会调用一次,所以需要设置手势状态
    if(longPress.state==UIGestureRecognizerStateEnded)
    {
        return;
    }
    NSLog(@"长按超过两秒");
}    

//旋转手势

UIRotationGestureRecognizer *rotation=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotation:)];
    [self.view addGestureRecognizer:rotation];
//旋转事件
-(void)rotation:(UIRotationGestureRecognizer *)rotation
{
    //根据旋转的弧度获得角度
    float degree=rotation.rotation*(180/M_PI);
    NSLog(@"%f",degree);
}