У меня зарегистрировано четыре распознавателя UIGestureSwipeRecognizer (по одному для каждого направления), и они работают должным образом на iPhone 4 / 4S (iOS 4.3 и 5) и iPad 1/2 (iOS 4.NotSure и 5).Это игра, поэтому единственные допустимые ориентации устройства - это LandscapeRight и LandscapeLeft.Однако на iPhone 3G с iOS 4.1 распознаватели прокрутки реагируют так, как если бы устройство удерживалось в книжном режиме.Другими словами, на iPhone 3G то, что должно быть пролистыванием вверх в LandscapeLeft, регистрируется как пролистывание вправо.Фактически, все четыре распознавателя пролистывания ведут себя так, как если бы устройство находилось в режиме «Портрет»;тем не менее, я проверил [[UIDevice currentDevice] orientation]
, и он всегда возвращает UIDeviceOrientationLandscapeLeft
Кроме того, приложение представляет собой игру, основанную на шаблоне cocos2d 1.0.1.
Что я могу делать не так?
Вот мой код, в котором я регистрирую четыре распознавателя пролистывания:
_swipeRecognizer_right = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRightDetected)];
_swipeRecognizer_right.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:_swipeRecognizer_right];
_swipeRecognizer_right.delegate = self;
_swipeRecognizer_left = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeftDetected)];
_swipeRecognizer_left.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:_swipeRecognizer_left];
_swipeRecognizer_left.delegate = self;
_swipeRecognizer_up = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpDetected)];
_swipeRecognizer_up.direction = UISwipeGestureRecognizerDirectionUp;
[self.view addGestureRecognizer:_swipeRecognizer_up];
_swipeRecognizer_up.delegate = self;
_swipeRecognizer_down = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDownDetected)];
_swipeRecognizer_down.direction = UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:_swipeRecognizer_down];
_swipeRecognizer_down.delegate = self;