小编san*_*isn的帖子

设置UISwipeGestureRecognizer的方向

我想在基于视图的iPhone项目中添加简单的滑动手势识别功能.应识别所有方向(右,下,左,上)的手势.

它在UISwipeGestureRecognizer的文档中说明:

您可以通过使用按位或操作数指定多个UISwipeGestureRecognizerDirection常量来指定多个方向.默认方向是UISwipeGestureRecognizerDirectionRight.

但对我来说它不起作用.当所有四个方向都被"或"时,仅识别左右滑动.

- (void)viewDidLoad {
    UISwipeGestureRecognizer *recognizer;

    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionUp)];
    [[self view] addGestureRecognizer:recognizer];
    [recognizer release]; 
    [super viewDidLoad];
}

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
    NSLog(@"Swipe received.");
}
Run Code Online (Sandbox Code Playgroud)

我通过在视图中添加四个识别器来修复此问题,但我很想知道它为什么不像在文档中宣传的那样工作?

- (void)viewDidLoad {
    UISwipeGestureRecognizer *recognizer;

    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
    [[self view] addGestureRecognizer:recognizer];
    [recognizer release];

    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];
    [[self view] addGestureRecognizer:recognizer];
    [recognizer release];

    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];
    [[self view] addGestureRecognizer:recognizer]; …
Run Code Online (Sandbox Code Playgroud)

iphone swipe ios uiswipegesturerecognizer

131
推荐指数
6
解决办法
9万
查看次数

标签 统计

ios ×1

iphone ×1

swipe ×1

uiswipegesturerecognizer ×1