Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C:获取触发UIEvent的UITouch_Objective C_Ios_Uiview_Multi Touch_Uitouch - Fatal编程技术网

Objective c 目标C:获取触发UIEvent的UITouch

Objective c 目标C:获取触发UIEvent的UITouch,objective-c,ios,uiview,multi-touch,uitouch,Objective C,Ios,Uiview,Multi Touch,Uitouch,我在文档中找不到任何地方。在UIView的我的子类上调用此消息时: - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 我如何才能获得呼叫此消息的联系 在NSSet和UIEvent上,我只能获得触摸集,但没有唯一标识符,因此我可以确定是哪个触摸触发了消息 PS:他们到底为什么要发送所有触摸的NSSet,以及从[[event alltoucks]anyObject]获取相同触摸集的可能性您无法获得触摸,因为有时多次触摸

我在文档中找不到任何地方。在UIView的我的子类上调用此消息时:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
我如何才能获得呼叫此消息的联系

在NSSet和UIEvent上,我只能获得触摸集,但没有唯一标识符,因此我可以确定是哪个触摸触发了消息

PS:他们到底为什么要发送所有触摸的NSSet,以及从
[[event alltoucks]anyObject]获取相同触摸集的可能性

您无法获得触摸,因为有时多次触摸会触发该消息。如果用户在屏幕上有两个手指,并同时移动两个手指,则可以获得一个
触摸移动:withEvent:
,其中两个触摸都会更新

您需要处理
触摸
集中的每一次触摸。如果您已禁用视图的多点触控功能,以便知道集合中只有一次触控,则可以使用
toucks.anyObject
获得触控。但是如果你没有禁用多点触控,你需要在集合中的所有触控上循环

该消息包括一组与
事件分开的触摸。AllTouchs
,因为用户可能有三个手指向下,但只移动其中一个或两个手指。
toucks
集合仅包含移动的触摸,但
事件。Alltoucks
包含用户的所有触摸,包括自上次消息以来未移动的触摸


触摸的唯一标识符是
UITouch
对象本身。当用户将手指放在屏幕上时,iOS会创建一个
UITouch
对象。它会在用户移动手指时更新该对象。因此,您可以使用
UITouch
对象作为
NSDictionary
中的键,也可以使用
objc\u setAssociatedObject
将您自己的对象附加到它上!谢谢你详细的回答。现在一切都有了意义:)