0

当我在 UIWebView 中选择文本时,我的应用程序在极少数情况下会冻结。这是如何发生的:

  1. 点击并按住以选择文本
  2. 文本被选中
  3. 整个应用程序冻结,对触摸没有响应,但我仍然可以看到正在运行的操作
  4. 可能会冻结 10 秒左右。之后出现 UIMenuController。如果我在冻结时尝试滚动,则滚动会在应用再次响应后发生
  5. 如果文本仍然被选中,如果我滚动它会再次冻结。一次又一次地发生
  6. 如果我设法将选定的文本滚动到视图之外,滚动 webview 的其余部分就可以了,直到我将选定的文本滚动回来
  7. 如果我退出包含 UIWebView 的 UIViewController,我可以确认它们都已被释放。使用 UIWebView 回到一个新的 UIViewController 并再次发生。
  8. 这继续发生在 UIWebView 的新实例中,甚至当我关闭并恢复应用程序时也是如此。只有当我强制重启应用程序时才会停止。

有谁知道我如何调试这个?我从来没有在模拟器中看到过这个。仅在设备上很少发生。

4

1 回答 1

0

我怀疑您要么不正确地设置了视图层次结构,要么在不是主线程的线程上修改了它。因此,请告诉我们 UIWebView 的确切位置(超级视图),并仔细查看修改子视图数组的代码。

例如,您不会直接将 Web 视图添加到 UINavigationController 的子视图,而是添加到其视图控制器数组等。

所有其他方法都失败了,创建一个演示项目,该项目也显示问题并将其上传到我们可以自己运行的 DropBox。

于 2013-05-08T12:21:06.550 回答