2
嗯,我有一些代碼,以4個識別器添加到視圖,這樣UISwipeGestureRecognizer對角線輕掃問題
- (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 |正確的方向,任何人都知道解決這個問題的方法?
我用編程方式添加識別器有點不好,你認爲你能讓我開始嗎? – phyrrus9
好吧,我得到了一個功能,我應該分割translationInView和velocityInView或/用作「使用這個或那個」? – phyrrus9
「使用這個或那個」。 '-velocityInView:'可能是更好的選擇 - 只要其幅度超過某個閾值,您就可以按該矢量描述的方向觸發手勢。 –