gpt4 book ai didi

ios - UISwipeGestureRecognizer 对角滑动问题

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:26 24 4
gpt4 key购买 nike

好吧,我有一些代码可以将 4 个识别器添加到一个 View 中,就像这样

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib
for(int d = UISwipeGestureRecognizerDirectionRight; d <= UISwipeGestureRecognizerDirectionDown; d = d*2) {
UISwipeGestureRecognizer *sgr = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
sgr.direction = d;
[self.view addGestureRecognizer:sgr];
}
[self restore];
[self populate];
[self displaymap];

和这样的识别器

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer
{
printf("Guesture: %d\n", recognizer.direction);
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
{
printf("a\n");
[self move: 'a'];
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionRight)
{
printf("d\n");
[self move: 'd'];
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionUp)
{
printf("w\n");
[self move: 'w'];
}
else if (recognizer.direction == UISwipeGestureRecognizerDirectionDown)
{
printf("s\n");
[self move: 's'];
}
else if (recognizer.direction == (UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionUp))
{
printf("y\n");
[self move: 'd'];
}
}

问题是,它永远检测不到 up |正确的方向,有人知道解决这个问题的方法吗?

最佳答案

这不是 direction 属性的工作方式。 UISwipeGestureRecognizer 一次只能识别一个方向的滑动。您需要做一些更复杂的事情,涉及 UIPanGestureRecognizer 并根据其 -translationInView:/-velocityInView: 方法的结果确定其方向。

关于ios - UISwipeGestureRecognizer 对角滑动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20556447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com