我试图实施2种不同的基于触摸的行为。第一个行为的逻辑是这样的:
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
let touchLocation = touch.locationInNode(self)
moveViewTo(touchLocation) //moves my view to touchLocation
}
现在,对于我的第二个行为,我想根据我手指在屏幕上的位置旋转视图。为此,我尝试了这个:
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
let touchLocation = touch.locationInNode(self)
rotateViewTo(touchLocation) //rotates my view to face touchLocation
}
现在,我希望这两种不同的行为能够同时发挥作用。特别是,我想要第一次触摸来改变视图的位置,第二次触摸来旋转视图。
只有在视图中有两个触摸时才可以旋转,并根据第二次触摸更改方向。
有没有办法区分哪个触摸是第一个,哪个是第二个?我无法找到区分touches: Set<NSObject>
的方法,因为天生Set
是一个无序集合。
答案 0 :(得分:1)
我相信你唯一的选择是将你的第一次触摸存储为var。我的swift不够强大,不能为你写出代码,但这里是步骤。
很抱歉,我无法为您编写所有代码,但希望这能让您朝着正确的方向前进。