我在文档中找不到相关信息。当这个消息在我的UIView子类中被调用时:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
我该如何获取触发此消息的触摸?
在NSSet和UIEvent上,我只能获取一组触摸,但没有唯一标识符,因此无法确定哪个触摸触发了该消息。
PS:为什么他们要发送所有触摸的NSSet,并且还可以从[[event allTouches] anyObject]
获取相同的集合。
我在文档中找不到相关信息。当这个消息在我的UIView子类中被调用时:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
我该如何获取触发此消息的触摸?
在NSSet和UIEvent上,我只能获取一组触摸,但没有唯一标识符,因此无法确定哪个触摸触发了该消息。
PS:为什么他们要发送所有触摸的NSSet,并且还可以从[[event allTouches] anyObject]
获取相同的集合。
touchesMoved:withEvent:
中获取更新的两个触摸。touches
集中的每个触摸。 如果您已禁用视图的多点触控,以便您知道集合中只会有一个触摸,则可以使用touches.anyObject
来获取触摸。 但是,如果您没有禁用多点触控,则需要循环遍历集合中的所有触摸。event.allTouches
不同的一组触摸,因为用户可能有三个手指接触屏幕,但只移动了其中一个或两个手指。 touches
集仅包含移动的触摸,但event.allTouches
包含所有用户的触摸,包括自上次消息以来未移动的触摸。UITouch
对象本身。 当用户在屏幕上放置手指时,iOS创建一个UITouch
对象。 它会在用户移动手指时更新该对象。 因此,您可以将UITouch
对象用作NSDictionary
中的键,也可以使用objc_setAssociatedObject
附加自己的对象。