【发布时间】:2014-01-28 00:08:05
【问题描述】:
在我的 iOS 应用程序(一种闪存卡应用程序)中,我使用的是 UIWebView,一旦 webview 内容加载完成,我需要执行一些 UI 操作(更改)。
我正在webViewDidFinishLoad 中检查这个。
当用户点击卡片时,卡片会翻转并加载不同的内容。我在flipAction 和swipeAction 中使用下面的代码(当用户从一张卡移动到另一张卡时)来检查:
if (![[myWebView stringByEvaluatingJavaScriptFromString:@"document.readyState"] isEqualToString:@"complete"])
{
[self performSelector:@selector(myCustomMethod:) withObject:self afterDelay:3.0];
}
有时,并非总是如此,我的 UI 会在上述 if 条件下冻结,之后 UI 将不再响应。该应用必须手动终止并重新启动。
我需要调用stringByEvaluatingJavaScriptFromString: 线程以外的方法吗?
或者这可能是什么原因?
【问题讨论】:
-
您是否在 if 块中执行一些 UI 更新?您发布的代码是否在主线程上运行?
-
是的,我只使用主线程执行 UI 更新。
标签: ios iphone objective-c uiwebview stringbyevaluatingjavascr