问题标签 [touchesended]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2944 浏览

swift - 如何使用 touchesBegan 和 touchesEnded?

我在 ViewController 上添加了以下代码

但它根本不打印任何消息。

0 投票
1 回答
126 浏览

swift - 如何知道何时按下按钮和取消按下按钮

我做了一个按钮。并使用了下面的代码。但它根本不起作用。

我如何知道何时按下按钮以及何时取消按下按钮?

0 投票
2 回答
2440 浏览

ios - 如何检测 iOS UIViewController 是否被交互或触摸

我有一个特定的 UIViewController 我想阻止 iOS 完成的 idleTimer 处理。我知道我可以设置: UIApplication.shared.isIdleTimerDisabled = true 但是,我希望能够设置一个计时器以在固定时间后重新启用正常的系统空闲计时器处理,因此我可以让屏幕保持最短时间。该应用程序的性质是,您可以打开一个视图并将其用于参考/阅读很长时间。

关键点是我希望每次用户触摸屏幕或与设备交互时都重新启动计时器。所以我需要能够检测用户是否做了任何事情,这样我就可以休息了。

我试图覆盖控制器中的 touchesEnded 方法,但测试表明该方法从未被调用。欢迎任何想法(在 swift 3 中:)

0 投票
2 回答
121 浏览

ios - 从 touchesEnded 获取图像名称

在我的故事板中,我有一些“启用用户交互”的图像。在UIViewController我覆盖该touchesEnded功能。

我是否可以获取在此功能中单击的图像的名称?我宁愿不要@IBOutlet图像。

0 投票
0 回答
138 浏览

ios - iOS11 -touchesEnded 方法有时在重新创建视图之前不再调用

我有一个使用 -touchesBegan 和 -touchesEnded 方法的带有自制手势/点击检测器的应用程序(从 iOS6 开始)。该检测器多年来一直运行良好,但自从最近的 iOS 版本以来,偶尔会发生以下情况:

有时在随机(?)时间点 GameView 停止接收 -touchesEnded: 直到视图被丢弃并重新创建。

就我而言,我需要通过开始一个新游戏来重新创建视图。

我现在覆盖所有 4 -touches* 方法并且不使用手势识别器。GameView 具有实现触摸的子视图,但它们仍按预期工作。-touchesBegan 只是保存了手势的起始点和时间,所以 -touchesCanceled 和 -touchesMoved 不需要做任何事情。

iOS10 或 iOS11 是否有任何变化,我可以在哪里开始搜索,因为这可能会失败?XCode Interface Builder 设置可能吗?

0 投票
0 回答
45 浏览

ios - Xcode touchesEnded 停止工作

我正在用 Xcode 和 swift 编写一个应用程序。我正在使用SpriteKit 的 SKScene。我遇到了一个非常有趣的错误。我有一个类Level1,在它里面,我有touchesEnded方法,它可以工作大约 2 次点击,然后它就停止了。我有一个简单print("hello world")的,它打印两次,然后停止。我真的不知道为这个错误附加什么,所以我附加了方法和超类方法

我正在Level1使用这个从另一个场景添加

让我知道是否需要任何其他代码

0 投票
0 回答
70 浏览

ios - 是否可以观察 Swift 中的方法,或者只是属性?

我有一个应用程序,我试图在其中添加一种导游,在其中我将用户从一个功能引导到下一个功能。我想做的是让用户与各种界面元素进行交互,当他们选择正确的元素时,游览会进入下一步。我真的很难找到一种方法来做到这一点。有两种方法我一直在尝试接近它,但我不能完全弄清楚如何实现,也不能确定哪种方法会更好。我一直在研究的两个选项是:

  1. 创建它的子类UIView会以某种方式将所有用户交互转移到直接位于其后面的视图中,但会将它们记录下来,以便在采取正确的操作时触发下一步。

  2. 找到一种将观察者添加到UIResponder(通常是 a UIButton,但偶尔是 aUITableViewCell或其他类型)的方法,这将使程序知道触摸何时结束,这将允许程序随后检查用户是否执行了正确的任务。

如果它只是一个按钮,选项 1 就足够简单,但当它是 aUITableView或时,它似乎更复杂UIPickerView

选项 2 是我倾向于的选项,只要我能找到一种方法将观察者添加到方法(很可能touchesEnded:with:),就像它们可以添加到属性中一样。这样,我可以看到何时进行交互并检查它是否正确。当然,我实际上可以在每个应该触发它的方法中硬编码移动到下一步(如果它满足成为导游的一部分的条件),但这似乎是一种不好的做法。

有没有人有什么建议?是否有一种“正确”的方式来做这些事情之一,或者我应该考虑的第三种选择?

0 投票
0 回答
78 浏览

ios - iOS:我的绘图弹出框出现问题,自 iOS13 以来显示效果不佳

我显示了一个允许在里面绘制的弹出框。

我的问题是自从iOS13以来,它的显示效果不佳。

它应该如何显示:
在此处输入图像描述

它现在在 iOS13 中的显示方式:
在此处输入图像描述

有任何想法吗?

0 投票
0 回答
223 浏览

wkwebview - 有没有办法让 WKWebview 成为 firstResponder?

主要思想是如果没有检测到触摸或按下,则重新加载 WKWebView(即当 webView 在一段时间内保持非活动状态时)。我尝试了实现的方式

touchesBegan(_:with:)touchesEnded(_:with:)

我已经覆盖了这些功能。但是当检测到触摸时这些函数不会被调用。当存在 TextField 并且检测到文本字段内的触摸时,将调用此函数。但是为什么它在 WebView 中不起作用。

我发现要使 touchesBegan 和 touchesEnded 函数正常工作,我需要使对象成为第一响应者。我用了

我不知道如何使 webview 成为 firstResponder 并且还有其他方法可以在 WKWebView 中检测按下/触摸。谁能帮我?并提前谢谢你

0 投票
1 回答
132 浏览

ios - iOS touchesMoved 仅由 UIButton 转发一次

我的目标,同时拥有:

  • 一个处理事件的 UIButton ( .touchDown)
  • 层次结构中的另一个视图(即:super)接收touchBegan/Moved/Ended/Cancelled.

我想要那个事件,因为我需要触摸力和其他东西来进行一些计算


在upper/super 视图中,我覆盖了touchesBegan 和friends,这样我就可以获得forces 和东西。

但是,基本上, UIButton 不会转发触摸事件,因此(在此示例中)我扩展了 UIButton (在我的代码中我扩展了一个子类〜但这不会改变问题)并覆盖 touchesBegan 和朋友,并添加next?.touchesBegan(...)给它。


什么有效:

  • touchesBegan(...)正确转发到超级视图

什么不起作用:

  • touchesMoved(...)转发一次它的super观点。(即使按钮touchesMoved被调用,但next?不是nil
  • touchesEnded(...)之前调用过a 时不会调用touchesMoved(...)(如果您跟随,则只有一次 touchesMoved(...) 调用)。又next?不是nil

这是一个向您展示问题的示例项目

  • git clone git@bitbucket.org:5t4rrk/problemtouchmovedonlyonce.git

如果有人对为什么会出现这种行为有任何见解,请告诉我\o/