相关疑难解决方法(0)

设置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万
查看次数

如何识别所有4个方向的滑动?

我需要识别所有方向的滑动(向上/向下/向左/向右).不是同时,但我需要认识到它们.

我试过了:

  UISwipeGestureRecognizer *Swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
  Swipe.direction = (UISwipeGestureRecognizerDirectionLeft | 
                     UISwipeGestureRecognizerDirectionRight |
                     UISwipeGestureRecognizerDirectionDown | 
                     UISwipeGestureRecognizerDirectionUp);
  [self.view addGestureRecognizer:Swipe];
  [Swipe release];
Run Code Online (Sandbox Code Playgroud)

但没有出现 SwipeRecognizer

这是SwipeRecognizer的代码:

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender {
  if ( sender.direction == UISwipeGestureRecognizerDirectionLeft )
    NSLog(@" *** SWIPE LEFT ***");
  if ( sender.direction == UISwipeGestureRecognizerDirectionRight )
    NSLog(@" *** SWIPE RIGHT ***");
  if ( sender.direction == UISwipeGestureRecognizerDirectionDown )
    NSLog(@" *** SWIPE DOWN ***");
  if ( sender.direction == UISwipeGestureRecognizerDirectionUp )
    NSLog(@" *** SWIPE UP ***");
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?如何为我的滑动对象分配所有不同的方向?

iphone objective-c ipad uigesturerecognizer uiswipegesturerecognizer

26
推荐指数
1
解决办法
3万
查看次数