- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我问了this question在 Stack Exchange Game Development Site 上关于如何组合点击和长按手势识别器,并收到以下答案:
The way to deal with this is to set a timer once the person taps the phone. The most user friendly scenario that you'd implement would look something like this:
- When you detect a tap, set a timer (t = timeToRepeat)
- On each frame, decrease the timer by dt
- If the timer reaches zero, move the sprite a tile and reset the timer
- If the user releases their finger before the first cycle of the timer, move the sprite one tile
Obviously the amount of time that you set your timer to will determine how fast your sprite moves. There are a few variations on this theme depending on the kind of behavior you want as well. For example, you can move the sprite once immediately upon detecting a tap and ignore step #4.
我同意这是实现它的方法,所以我正在尝试实现它并提出了以下代码:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//This records the time when the user touches the screen
self.startTime = [NSDate date];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSTimeInterval temp = [self.startTime timeIntervalSinceNow];
NSTimeInterval holdTime = temp * -1;
if(holdTime < self.threshold) {
//Tap
}
else {
//Hold
}
}
这段代码有效,但我意识到我应该在用户按住屏幕时调用计时器代码,而不是在他们完成后调用。那么有没有办法在用户按下时调用 touchesEnded 中的代码?
最佳答案
从技术上讲,如果用户保持他/她的手指完全静止,则不会在它们之间调用任何方法。但在实践中,touchesMoved
被称为一堆。你应该只使用 NSTimer
而不是自己跟踪时间
关于ios - 在touchesBegan 和touchesEnded 之间是否有调用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16284837/
我正在编写一个 ipad 应用程序,您可以用 1 或 2 个手指在屏幕上拖动。我使用 touchesBegan、touchesMoved 和 touchesEnded 方法来识别触摸。我为 View
我的代码: var location = CGPoint(x:0,y:0) override func touchesBegan(touches: Set, withEvent event: UIEv
我正在尝试在我的 GameScene 中实现 ccTouchesBegan。 我已设置 isTouchEnabled = YES。我还在 touchDispatcher 上调用了 addStandar
我有以下代码可以在用户点击 View 时隐藏键盘,但 TouchBegan 根本不会触发: class LoginViewController: UIViewController, UITextFie
我有一个奇怪的问题,touchesBegan 处理程序被多次调用。如果我快速点击 UIView (UIButton) 2 次,touchesBegan 被调用 3 次。 我通过简单的时间测量解决了这个
所以问题是,当我启动它时,soundOff 按钮位于 soundOn 上方,但它是不可见的。所以我只看到了 soundOn 按钮,当我尝试点击 soundOn 按钮时,它实际上只是点击了 soundO
我有一个函数,每 2 秒被重复调用一次,每次从屏幕顶部带来一个具有随机纹理的球。我希望能够在 touchesBegan 中使用这个球,但我不能,因为它是一个局部变量。我试过将它设为全局变量,但这给了我
我正在尝试为我的应用程序弹出一个弹出窗口。到目前为止,弹出窗口在固定坐标处弹出,我试图让它在用户点击的位置弹出。这是我的: override func touchesBegan(touches: Se
// // CommentViewController.swift // Bordy // // Created by Micheal Tyler on 9/22/17. // Copyrig
是否可以在项目中的多个位置或对象中使用 touchesBegan 方法? 例如,如果我有一个带有两个按钮的主类: class GameScene: SKScene, SKPhysicsContactD
我正在尝试检测一个节点是否是敌人。如果是,我想删除它。我正在尝试使用 touched nodes 名称来检测这一点。我能够检测到节点的名称是否为敌人,但我不知道如何删除它。谢谢您的帮助! :) 这里是
我正在使用 UIPicker 来填充 UITextField 而不是键盘。这很好用,但我现在无法关闭 UIPicker。我希望能够点击屏幕上的任意位置并关闭 UIPicker。我已经尝试了每种触摸方法
我正在使用 NSTimer 构建一个旋转横幅来跟踪当前图像,该图像由 5 个不同的图像制成动画。我有一个 touchesBegan 设置,如果有人点击它,可以继续处理横幅上的触摸事件。我的概念验证有效
我目前正在使用 swift 开发一个 iOS 应用程序。我使用 override 编写了我自己的 tocuhesBegan 和 tochesEnded 函数。现在,当我使用 self.button 时
我的 Storyboard看起来像这样: Controller top/bottom layout guide view UIview UIBu
我想使用 touchesBegan 方法来了解用户何时在我的 TableView 中的 UITextField 之外点击。 我有一个包含 TableView 的 UIView,我有以下方法: - (v
touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等只能被UIView捕获(如有问题请指出
我有一个文本字段,当我触摸屏幕上的其他位置时,它会隐藏键盘(通过我的 TouchesBegan 函数并辞职......等等)。但是当我触摸 Textview 时,TouchesBegan 不会被调用,
我想检测何时触摸其他地方而不是特定的 UIView 。我正在使用touchesBegan然而,对于它,它总是打印“触摸在外面”(参见下面的代码)。我错过了什么? 我从中得到了帮助post . over
我的 SKScene 有 1 个空节点 (buttonsGroup)。在我的 GameView 类中,我创建一个节点 (ball1),它是空节点的父节点。 buttonsGroup = chi
我是一名优秀的程序员,十分优秀!