Ios Swift:UIWebView加载旧内容
我的应用程序有一个Ios Swift:UIWebView加载旧内容,ios,iphone,swift,uiwebview,Ios,Iphone,Swift,Uiwebview,我的应用程序有一个ViewController、一个UIWebView和4个UIImageView 我的应用程序中的控制流: ->从摄像头捕获图像并存储到UIImage变量中,这发生在didfishpickingMediaWithInfo函数中。对图像进行一些处理 ->从didFinishPickingMediaWithInfo函数中,加载带有内嵌html/css代码的UIWebView webview.hidden = false WebView.loadHTMLString(htmlStri
ViewController
、一个UIWebView
和4个UIImageView
我的应用程序中的控制流:
->从摄像头捕获图像并存储到UIImage
变量中,这发生在didfishpickingMediaWithInfo
函数中。对图像进行一些处理
->从didFinishPickingMediaWithInfo
函数中,加载带有内嵌html/css代码的UIWebView
webview.hidden = false
WebView.loadHTMLString(htmlString, baseURL: nil)
->将上述html加载到UIWebView后,将调用委托函数webViewDidFinishLoad。从webViewDidFinishLoad,使用以下代码将UIWebView中加载的任何内容的快照拍摄到图像中:
var image:UIImage?
autoreleasepool{
UIGraphicsBeginImageContextWithOptions(WebView.frame.size, false, 1.0)
WebView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
->将捕获的图像存储到UIImage变量中
->将另一个不同的html/css代码加载到同一个UIWebView中(我仍然在webViewDidFinishLoad函数中):html加载代码与上面相同,即
WebView.loadHTMLString(htmlString1, baseURL: nil)
->webViewDidFinishLoad再次被调用,因为在上述步骤中加载了新的html代码,我做了同样的事情,即将UIWebView内容的快照拍摄到UIImage变量中,并加载新的html模式
->我这样做了4次,也就是说,最后我在4个UIImage变量中捕获了4个图像。我将所有这4幅图像加载到我故事板上的4 UIImageView中
->然后我解雇了imagepicker
imagePicker.dismissViewControllerAnimated(true, completion: nil)
以下是我最后看到的问题:
->有时,图像1与图像2相同,有时所有图像都相同。这是随机发生的。我确信这4张图片都是独一无二的。因为我在每个步骤中加载不同的html代码
- 在上面的顺序中,我做错了什么
dispatch_async (dispatch_get_main_queue(), ^{
// call method to load new html
});
2) 在调用webViewDidFinishLoad时,我遇到了webView无法刷新的问题。我通过调整webView框架解决了这个问题。高飞,是的。这是在iOS 6中出现的,所以我不知道这是否会产生任何影响,或者是否会影响您的工作
[webView loadHTMLString: html baseURL: nil];
// Play with frame to fix refresh problem
CGRect frame = webView.frame;
webView.frame = CGRectZero;
webView.frame = frame;
在加载另一个html之前,您可能希望清除web视图。我如何等待main上的下一个运行循环,这是我做的,但它不起作用:我调用了dispatch\u async(dispatch\u get\u main\u queue(),{从webViewDidFinishLoad…这就是你希望我做的事?是的,这似乎是我建议你尝试的。你也可以尝试我的项目#2。我没有信心,但正如我提到的,它在几年前的一个类似问题上有所帮助。