phy*_*us9 3 iphone objective-c ios uiswipegesturerecognizer
好吧,我有一些代码向视图添加4个识别器,像这样
- (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];
Run Code Online (Sandbox Code Playgroud)
}
和这样的识别器
-(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'];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,它永远不会检测到| 正确的方向,有人知道解决此问题的方法吗?
这不是direction财产的运作方式。UISwipeGestureRecognizer一次只能识别一个方向的滑动。您需要做一些更复杂的事情,包括UIPanGestureRecognizer并根据其-translationInView:/ -velocityInView:方法的结果确定其方向。
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |