Как я могу отключить обнаружение касания?

Когда вы пишете List<String> list = new LinkedList();, компилятор выдает предупреждение «unchecked». Вы можете игнорировать его, но если вы игнорировали эти предупреждения, вы также можете пропустить предупреждение, которое уведомляет вас о проблеме безопасности реального типа.

Итак, лучше написать код, который не генерирует дополнительные предупреждения и алмазный оператор позволяют вам делать это удобным способом без лишнего повторения.

20
задан LearnCocos2D 13 October 2011 в 21:36
поделиться

6 ответов

Отключите взаимодействие с пользователем в вашем представлении, пока действие не завершится, а затем включите его снова.

Чтобы отключить сенсорный экран

[self.view setUserInteractionEnabled:NO];

Чтобы включить сенсорный экран

[self.view setUserInteractionEnabled:YES];

Пожалуйста, попытайтесь быть немного более кратким из что вы хотите в следующий раз.

45
ответ дан 30 November 2019 в 01:46
поделиться

Почему бы вам не использовать некоторые вид (простая версия) логического значения, которое нужно запомнить, т.е. isInAction = true и после завершения действия isInAction = false ...

Итак, когда кто-то щелкает, вы используете что-то вроде

if (!isInAction) {
   isInAction=true;
   try {
     doYourAction;
   } catch {
     ...
   } finally {
     isInAction=false;
   }
}

// Код - это своего рода псевдокод, потому что Я еще не программировал для iPhone, просто чтобы представить, что я имею в виду.

0
ответ дан 30 November 2019 в 01:46
поделиться

Вы всегда можете поместить прозрачный UIView поверх области, для которой вы хотите "отключить" ввод касанием, пусть он послушает для кранов, и пусть он их игнорирует. Удалите UIView (или скройте его), если вы хотите, чтобы ввод был снова прослушан.

0
ответ дан 30 November 2019 в 01:46
поделиться

Возможно, я не понял вашего вопроса, но это то, что вы ищете?

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  [Superman Fly];
  self.isTouchEnabled = NO;
}

- (void)SupermanLanded{
  self.isTouchEnabled = YES;
}
0
ответ дан 30 November 2019 в 01:46
поделиться

Just gonna make a wild assumption that you're talking about the specific Action class in Cocos2D. If that's true, then you should know that every Action has an "isDone" Bool you can check to see if it's done. Let me know if that's what you're asking and I'll post an example, but there's a huge chance you could be talking about something else because your wording is so confusing ;)

1
ответ дан 30 November 2019 в 01:46
поделиться

This is the best answer to your question:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

[[UIApplication sharedApplication] endIgnoringInteractionEvents];
48
ответ дан 30 November 2019 в 01:46
поделиться