Путать из примеров TouchBegan - PullRequest
0 голосов
/ 17 марта 2012

Я вижу несколько примеров использования обратного вызова touchesBegan:

for (UITouch *touch in touches) {...}

, в то время как другие используют:

UITouch *touch = [touches anyObject];

Я не понимаю, когда нужно было бы цикл for против not. Может ли кто-нибудь помочь мне понять это?

Ответы [ 3 ]

3 голосов
/ 17 марта 2012

Если вы не включили мультитач, то вы получите одно касание.Вы можете извлечь его из набора touches (который содержит один элемент), используя [touches anyObject];.

Если вы включили мультитач, то набор touches может содержать несколько элементов, и вам необходимоцикл для доступа ко всем из них.

for (UITouch *touch in touches) {
    // Your code here to handle the touch
}

Наконец, обратите внимание, что использование цикла будет работать во всех случаях, даже если у вас есть одно касание.

2 голосов
/ 17 марта 2012

Если вы заботитесь о каждом отдельном касании в ситуации с несколькими касаниями, циклически просматривайте коллекцию касаний, т. Е. Если вам нужно знать, попадало ли любое касаний в определенное место:

for (UITouch *touch in touches) {...}

Если вы заботитесь только о том, что произошло касание, или не поддерживает мультитач, то подход [touches anyObject] подойдет.

1 голос
/ 17 марта 2012

для цикла, вы используете для мультитач!

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