从touchBegan示例中感到困惑

时间:2012-03-17 18:02:32

标签: ios cocoa-touch

我看到了touchesBegan回调使用的一些例子:

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

而其他人使用:

UITouch *touch = [touches anyObject];

我不明白什么时候需要一个for循环而不是。有人能帮助我理解这个吗?

3 个答案:

答案 0 :(得分:3)

如果您没有启用多点触控,那么您将获得一次触控。您可以使用touches从集合[touches anyObject];(包含单个项目)中检索它。

如果您启用了多点触控,则设置touches可能包含多个项目,您必须使用循环来访问所有项目。

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

最后,请注意,即使只需轻轻一按,使用循环也适用于所有情况。

答案 1 :(得分:2)

如果您关注多点触控中的每个触摸,请循环搜索触摸 - 即如果您需要知道任何触摸是否到达特定位置:

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

如果您只关心触摸发生或不支持多点触控,那么[touches anyObject]方法就可以了。

答案 2 :(得分:1)

for循环,用于多点触控!