ios 滑动手势 怎么判断左右滑动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 滑动手势 怎么判断左右滑动相关的知识,希望对你有一定的参考价值。

ios 滑动手势要判断左右滑动,可以通过UISwipeGestureRecognizer这个类里的direction来判断。

    首先,创建一个UISwipeGestureRecognizer的对象swipeGestureRecognizer.

    然后写一个if语句来判断滑动的方向,如下所示:

    if(swipeGestureRecognizer.direction == UISwipeGestureRecognizerDirectionRight)

    //在这里写右滑的操作

    else

    //在这里写左滑的操作


参考技术A 1. 先创建一个SingleView的项目.
2. 然后在主界面上放一个Label, 主要用于测试滑动是否起作用.

3. 给label增加一个Outlet. 取名为 "swipeLabel"

4. 在"ViewController.h"中增加两个手势property.

?

1
2

@property (nonatomic, strong) UISwipeGestureRecognizer *leftSwipeGestureRecognizer;
@property (nonatomic, strong) UISwipeGestureRecognizer *rightSwipeGestureRecognizer;

并synthesize到"ViewController.m"文件中.

5.在"ViewController.m"文件中的"ViewDidLoad"方法中增加如下代码:

?

1
2
3
4
5
6
7
8

self.leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipes:)];
self.rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipes:)];

self.leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
self.rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight;

[self.view addGestureRecognizer:self.leftSwipeGestureRecognizer];
[self.view addGestureRecognizer:self.rightSwipeGestureRecognizer];

6.并在"ViewController.m"中增加如下方法;

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14

- (void)handleSwipes:(UISwipeGestureRecognizer *)sender

if (sender.direction == UISwipeGestureRecognizerDirectionLeft)
CGPoint labelPosition = CGPointMake(self.swipeLabel.frame.origin.x - 100.0, self.swipeLabel.frame.origin.y);
self.swipeLabel.frame = CGRectMake( labelPosition.x , labelPosition.y , self.swipeLabel.frame.size.width, self.swipeLabel.frame.size.height);
self.swipeLabel.text = @"尼玛的, 你在往左边跑啊....";


if (sender.direction == UISwipeGestureRecognizerDirectionRight)
CGPoint labelPosition = CGPointMake(self.swipeLabel.frame.origin.x + 100.0, self.swipeLabel.frame.origin.y);
self.swipeLabel.frame = CGRectMake( labelPosition.x , labelPosition.y , self.swipeLabel.frame.size.width, self.swipeLabel.frame.size.height);
self.swipeLabel.text = @"尼玛的, 你在往右边跑啊....";



7. 保存, 编译, 运行....本回答被提问者采纳

iOS解决嵌套在ScrollView中的TableView滑动手势冲突问题

  最近在迭代开发公司项目的时候遇到了一个问题,在可以左右切换标签视图的ScrollView中嵌套了两个TableView用于展示视图,感觉一切so easy的情况下,问题出现了,因为左右两个视图既可以实现标签切换,其中TableView还需要侧滑删除功能,那么问题来了,滑动手势懵逼了,这是要搞事情啊!他无法识别到底要做什么处理,因为滑动手势冲突了,下面简单介绍一下解决思路:

 

大致的项目需求如上图所示:

经过一番资料的查阅,解决办法就是继承自UIScrollView,重写UIScrollView类:

  第一步:继承自UIScrollView创建XMScrollView并遵守UIGestureRecognizerDelegate

  第二步:重写UIGestureRecognizerDelegate代理方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if (gestureRecognizer.state != 0) {
        return YES;
    } else {
        return NO;
    }
}

  第三步:下面这两个属性必须有加

self.scrollView.delaysContentTouches = NO;
self.scrollView.canCancelContentTouches = NO

 问题就这样迎刃而解了!写的比较烂,不喜勿喷!

 

以上是关于ios 滑动手势 怎么判断左右滑动的主要内容,如果未能解决你的问题,请参考以下文章

iOS UICollectionView左右滚动和上下滑动处理

判断手势在物品的滑动方向(上下左右)

iOS-UIScrollView滑动与手势冲突

js判断移动端手势 上下左右滑动事件

iOS开发页面滑动返回跟scrollView左右划冲突问题

手机左右滑动屏幕切换页面是如何实现的