为啥我的 watchkit 应用程序没有在“开始”状态调用我的平移手势识别器处理代码?
Posted
技术标签:
【中文标题】为啥我的 watchkit 应用程序没有在“开始”状态调用我的平移手势识别器处理代码?【英文标题】:Why is my watchkit app not calling my pan gesture recognizer handling code on the "began" state?为什么我的 watchkit 应用程序没有在“开始”状态调用我的平移手势识别器处理代码? 【发布时间】:2018-08-07 19:05:59 【问题描述】:不幸的是,当我运行我的 watchkit 应用程序时,我的手势识别处理程序代码并没有在每次状态更改时被调用。有一些以began
状态开头的触摸。但是,似乎在某些情况下,我的 began
状态处理程序永远不会被调用。在这些情况下,我能够处理的第一个状态通知是 changed
状态。
【问题讨论】:
【参考方案1】:不幸的是,虽然手势识别器确实经历了生命周期中的每个状态,但 Apple 并不保证您的处理程序将在生命周期的每个阶段被调用。这就是他们在https://developer.apple.com/documentation/watchkit/wkgesturerecognizer 看到的样子
所有手势识别器都从 WKKestureRecognizerState.possible 状态开始,然后根据手势类型酌情移动到其他状态。 手势识别器不会在每次状态更改时调用您的操作方法。 [强调我的]
因此,最好执行初始化代码以响应began
状态或第一个changed
状态。
【讨论】:
以上是关于为啥我的 watchkit 应用程序没有在“开始”状态调用我的平移手势识别器处理代码?的主要内容,如果未能解决你的问题,请参考以下文章