Objective c 目标C:获取触发UIEvent的UITouch
我在文档中找不到任何地方。在UIView的我的子类上调用此消息时: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]获取相同触摸集的可能性您无法获得触摸,因为有时多次触摸
- (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
将您自己的对象附加到它上!谢谢你详细的回答。现在一切都有了意义:)