我看到的touchesBegan回調使用的一些例子困惑:從touchBegan例子
for (UITouch *touch in touches) {...}
而其他人使用:
UITouch *touch = [touches anyObject];
我不明白,當一個人需要一個for循環VS不是。有人能幫助我理解這一點嗎?
我看到的touchesBegan回調使用的一些例子困惑:從touchBegan例子
for (UITouch *touch in touches) {...}
而其他人使用:
UITouch *touch = [touches anyObject];
我不明白,當一個人需要一個for循環VS不是。有人能幫助我理解這一點嗎?
如果您沒有啓用多點觸控,那麼您將收到一次觸摸。您可以使用[touches anyObject];
從集合touches
(包含單個項目)中檢索它。
如果您已啓用多點觸控,則設置touches
可能包含多個項目,您必須使用循環才能訪問所有項目。
for (UITouch *touch in touches) {
// Your code here to handle the touch
}
最後,請注意,即使您只有一次觸摸,使用循環也可以在所有情況下都能正常工作。
for循環,你用於多點觸摸!
如果你關心的每個單獨的觸摸的多點觸摸的情況下,依次通過觸摸的集合 - 也就是說,如果你需要知道,如果觸摸的任何打了一個特定的位置:
for (UITouch *touch in touches) {...}
如果您只關心發生了觸摸,或者不支持多點觸摸,那麼[touches anyObject]
方法就沒有問題。