我有一个游戏,在屏幕底部绘制了一排纸牌。我希望这样,如果用户触摸屏幕并向右移动手,则卡片将向右移动,直到他举起手。然后,如果他在触摸屏上向左移动手,则卡将向左移动,直到他举起手。

我首先想到的是使用滑动事件。但是只有在手指松开后才能滑动才能发出消息,我希望在手移动并触摸屏幕时移动卡片。

我的想法是获取触摸位置的x坐标,如果它大于以前的x,则将卡向左移动,否则将其向右移动。

我从这段代码开始,但是在接下来要做的事情上有些卡住,或者我做错了所有这些

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    NSUInteger touchCount = [touches count];
    NSUInteger tapCount = [[touches anyObject] tapCount];
}

最佳答案

您将需要其他一些触摸委托方法

实现-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event并在该方法内部获取触摸的初始x和y坐标。将它们保存到类范围的实例变量中。

然后在移动的触摸中,将新触摸的x坐标与触摸开始时的原始坐标进行比较,如果x 然后向右移动。

请注意,touchesMoved:withEvent仅在触摸移动时才被调用,因此,如果用户触摸并向右移动,但手指保持静止,则不会报告触摸。

您需要实现-touchesEnded:withEvent:-touchesCancelled:withEvent:才能在触摸结束时拾取。

关于ios - ios尝试左右拖动图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18789425/

10-11 17:38