2012-03-17 23 views
0

我看到的touchesBegan回調使用的一些例子困惑:從touchBegan例子

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

而其他人使用:

UITouch *touch = [touches anyObject]; 

我不明白,當一個人需要一個for循環VS不是。有人能幫助我理解這一點嗎?

回答

3

如果您沒有啓用多點觸控,那麼您將收到一次觸摸。您可以使用[touches anyObject];從集合touches(包含單個項目)中檢索它。

如果您已啓用多點觸控,則設置touches可能包含多個項目,您必須使用循環才能訪問所有項目。

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

最後,請注意,即使您只有一次觸摸,使用循環也可以在所有情況下都能正常工作。

1

for循環,你用於多點觸摸!

2

如果你關心的每個單獨的觸摸的多點觸摸的情況下,依次通過觸摸的集合 - 也就是說,如果你需要知道,如果觸摸的任何打了一個特定的位置:

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

如果您只關心發生了觸摸,或者不支持多點觸摸,那麼[touches anyObject]方法就沒有問題。