【发布时间】:2017-04-09 19:58:39
【问题描述】:
我最近注意到,我的每个应用程序视图都有一个特定的错误/行为:如果用户在视图出现时在 UI 组件上点击太快,点击就会被忽略。如果用户在点击之前稍等片刻,点击就会起作用。
情节提要用于情节提要,点击手势识别器位于 UIImageview 上并使用 IOS 10.2。
通过不同的论坛,我了解到以下选项:
- 在主线程中嵌套“当前视图控制器”的调用
- 在presentviewcontroller之前调用CFRunLoopWakeup
- 以编程方式添加 TapGesturerecognizer
- 更改“延迟触摸结束”和“延迟触摸开始”的状态
- 禁用 3d 触摸选项,因为据报道在其他应用中会出现类似症状
以上都没有成功。 任何人都会在视图加载后第一次点击时遇到类似的问题?
[更新:我意识到这种不当行为并非特定于该应用程序。尝试两个测试:
为 iPhone 和两个视图控制器控制器 A 和控制器 B 创建一个 xCode 项目。两个按钮:控制器 A 视图上的一个按钮转到控制器 B 视图和一个按钮返回控制器 B 视图返回到控制器一个看法。点按从视图 A 转到 B,再点按 B 并立即尝试点按按钮转到 B。第一次点按也不起作用。
进入 iPhone 的设置。点击通知。按设置返回主设置屏幕,立即点击通知。如果足够快,第一次点击不起作用。第二次点击有效或在第一次点击之前稍等片刻。
现在的问题是:这似乎是 iPhone 应用程序中的一个常见问题。你知道某处是否会有一个共同的环境吗?或者这是给定IOS版本的常见错误? ]
斯蒂芬
【问题讨论】:
-
什么时候添加点击手势?
-
它是通过情节提要添加的,假设它是在没有引起这种不当行为的情况下添加的,是吗?
-
您是否在主线程中执行网络或其他长时间 CPU 密集型任务?你做动画吗?
-
谢谢。从一个屏幕切换到下一个屏幕时,我得到 20% 的 CPU 峰值,然后又回到 1%。存在被动动画,但是该错误也会出现在没有动画的视图上。从网络的角度来看,我切断了对服务器的所有访问以进行测试。观察到相同的行为......
-
在获得真正有用的答案之前,您可能需要在这篇文章中添加展示此行为的最少代码。
标签: ios viewcontroller uitapgesturerecognizer