首页 > 其他分享 >手势滑动判断上下左右

手势滑动判断上下左右

时间:2024-02-09 09:56:21浏览次数:29  
标签:direction 上下左右 self translationT touches break 滑动 translation 手势

    moveDirection direction;//这个是个枚举

 

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    

    //方向

    UITouch *touch = [touches anyObject];

    CGPoint translation = [touch locationInView:self.view];

    self.translation = translation;

    direction = kMoveDirectionNone;

}

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    

    

}

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    

    UITouch *touch = [touches anyObject];

    CGPoint translation = [touch locationInView:self.view];

    self.translationT = translation;

 

    

    

    CGFloat upx = self.translation.x > self.translationT.x ?  self.translation.x - self.translationT.x:self.translationT.x - self.translation.x;

    CGFloat upy = self.translation.y > self.translationT.y ?  self.translation.y - self.translationT.y:self.translationT.y - self.translation.y;

    //上

    if ((self.translation.y > self.translationT.y) && (upx < (self.translation.y - self.translationT.y))) {

        

        direction = kMoveDirectionUp;

 

    //下

    }else  if (self.translation.y < self.translationT.y && (upx < (self.translationT.y - self.translation.y))) {

        direction = kMoveDirectionDown;

 

    //左

    }else   if (self.translation.x > self.translationT.x && (upy < (self.translation.x - self.translationT.x))) {

        direction = kMoveDirectionLeft;

 

    //右

    }else if (self.translation.x < self.translationT.x && (upy < (self.translationT.x - self.translation.x))) {

        direction = kMoveDirectionRight;

 

    }else{

        direction = kMoveDirectionNone;

 

    }

 

 

    switch (direction) {

            

        case kMoveDirectionDown:

            

            [self compTime:6];

            break ;

            

        case kMoveDirectionUp:

            

            [self compTime:12];

            

            break ;

            

        case kMoveDirectionRight:

            

            [self compTime:3];

            

            break ;

            

        case kMoveDirectionLeft:

            [self compTime:9];

            break ;

        case kMoveDirectionNone:

            

        default :

            

            break ;

            

    }

    

}

 

标签:direction,上下左右,self,translationT,touches,break,滑动,translation,手势
From: https://www.cnblogs.com/jinchengvs/p/18012338

相关文章

  • 滑动窗口(双指针同向扫描)
    题目:对于一个数组a[0],a[1]....a[n]和一个常数s,若一个连续区间和大于或等于s则为美丽区间,区间越短越美丽。输入:第一行包含两个整数n,s,其含义如题所述。第二行包含n个整数,代表a[0],a[1]....a[n]。输出:输出共一行,包含一个整数,表示最美丽的区间的长度。若不存在任何美丽的区......
  • (13/60)滑动窗口最大值、前K个高频元素
    滑动窗口最大值leetcode:239.滑动窗口最大值第一个hard!workout!资源占用竟然如此之大,,单调队列法思路需要一个抽象的类队列数据结构,每轮移动时:1.把队首pop;2.把下一元素push进队尾;3.获取队列最大值存入数组。pop实现:每次移动时尝试(说“尝试”是因为可能已经弹出了)弹出队首......
  • 代码随想录算法训练营第十三天|239. 滑动窗口最大值 347.前 K 个高频元素 总结
    239.滑动窗口最大值题目链接:239.滑动窗口最大值-力扣(LeetCode)给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。思路:首先在不考虑......
  • Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、
    全文链接:https://tecdat.cn/?p=33550原文出处:拓端数据部落公众号什么是时间序列?时间序列是一系列按时间顺序排列的观测数据。数据序列可以是等间隔的,具有特定频率,也可以是不规则间隔的,比如电话通话记录。在进行投资和交易研究时,对于时间序列数据及其操作要有专业的理解。本文......
  • 使用display:inline-block实现类grid布局时,元素的上下左右之间多了无法消除的间隔,去除
    错误如图 元素左右间隔,上下间隔,都不是手动设置的,布局换行之后自动出现的。 清除上下间隔方法。给每个div设置vertical-align:bottom/top;如果是下边距,就设置为bottom,上边距,就设置为top 清除左右间隔方法。没有尝试,但是网上搜的方法是,给父元素设置font-size:......
  • 轮播图指示点随着图片滑动高亮
    轮播图指示点随着图片滑动高亮先来观察默认的知识点,和高亮有关的地方  操作如下 验证一下是否成功 下面我们想只打印图片的下标 成功后如图所示 实验都没问题了我们就要把修改高亮的值变成可动的  ......
  • P1886 滑动窗口 /【模板】单调队列
    P1886滑动窗口/【模板】单调队列https://www.luogu.com.cn/problem/P1886 思路https://zhuanlan.zhihu.com/p/346354943 Codehttps://www.luogu.com.cn/record/143623041LLn,k;LLa[1000005];deque<LL>maxd,mind;intmain(){cin>>n>>k;......
  • 滑动窗口
    目录简介长度最小的子数组简介滑动窗口算法是一种用于解决问题的技术,它将嵌套的两个循环转换为单个循环。该算法适用于数组或列表。通常,这些问题可以通过暴力方法以O(n²)或O(n³)的时间复杂度解决,但是滑动窗口技术可以将时间复杂度降低到O(n)。滑动窗口算法的基本思想是将两......
  • ArkTS的滑动加载案例
     /***ArkTS的滑动加载案例*///自定义文章类classArticle{publicid:numberpublictitle:stringpubliccontent:stringconstructor(id:number,title:string,content:string){this.id=idthis.title=titlethis.content=conten......
  • iOS ARKit 中的手势检测
       智能移动设备的手势操作是使用者接受并已习惯的操作方式,在移动端AR应用中,对虚拟物体的操竹也基本通过手势操作完成,需要注意的是,本次所讲中手势检源是指用户在手机屏幕上的手指操作检测,不是指利用图像技术对使用者手部运动的检测。  手势检测是指通过检测使用者在手......