IOS:加载视图后第一次点击不起作用



我最近注意到,我的每个应用程序视图都有一个特定的错误/行为:如果用户在视图出现时点击 UI 组件的速度太快,则点击将被忽略。如果用户在点击前稍等片刻,则点击工作。

情节提要用于情节提要,点击手势识别器在UIImageview上使用,并使用IOS 10.2。

通过不同的论坛,我读到了以下选项:

  • 主线程中嵌套"当前视图控制器"的调用
  • 在 presentviewcontroller 之前调用 CFRunLoopWakeup
  • 以编程方式添加 TapGesture识别器
  • 更改"延迟
  • 触摸结束"和"延迟触摸开始"的状态
  • 禁用 3D 触摸选项,因为据报道其他应用程序中也发生了类似的症状

以上都失败了。 有人会在视图加载后第一次点击时遇到类似的问题吗?

[更新:我意识到这种不当行为并非特定于此应用程序。要尝试的两个测试:

  • 为 iPhone 创建一个 xCode 项目以及两个视图控制器控制器 A 和控制器 B。两个按钮:控制器 A 视图上的按钮可转到控制器 B 视图,返回控制器 B 视图上的按钮可返回控制器 A 视图。点击以从视图A转到B,点击返回B并立即尝试点击按钮转到B。第一次点击也不起作用。

  • 进入iPhone的设置。点击通知。按"设置"返回"主设置"屏幕,立即点击"通知"。如果速度足够快,则第一次点击不起作用。第二次点击工作或等待片刻后再点击。

现在的问题是:这看起来像是iPhone应用程序中的常见问题。 您知道某处是否会有一个通用设置吗? 或者这是给定IOS版本的常见错误吗? ]

斯蒂芬

这是一个普遍的问题(更换视图控制器的那一刻,第一次点击将被忽略),但这不是仅仅因为切换视图控制器的动画尚未完成而发生的错误。如果将动画设置为 false ,则视图控制器可以立即响应您的单击,无论速度有多快(无论如何都比您的手快):)

最新更新