gpt4 book ai didi

ios - Swift:UIWebView 加载旧内容

转载 作者:行者123 更新时间:2023-11-30 13:58:29 24 4
gpt4 key购买 nike

我的应用程序有一个 ViewController , 一 UIWebView和 4 UIImageView

我的应用程序中的控制流:

-> 从相机捕获图像并存储到 UIImage变量,这发生在 didFinishPickingMediaWithInfo功能。对图像进行一些处理。

-> 来自didFinishPickingMediaWithInfo功能,负载UIWebView使用内联 html/css 代码,即

webview.hidden = false
WebView.loadHTMLString(htmlString, baseURL: nil)

-> 将上面的html加载到UIWebView后,调用委托(delegate)函数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 个图像加载到 Storyboard 上的 4 个 UIImageView 中。

-> 然后我关闭 imagepicker

imagePicker.dismissViewControllerAnimated(true, completion: nil)

这是我最终看到的问题:

-> 有时,图像 1 与图像 2 相同,有时所有图像都相同。这是随机发生的。我确信这 4 张图片都应该是独一无二的。因为我在每个步骤中加载不同的html代码。

  • 在上述顺序中我做错了什么?

最佳答案

您可以尝试以下几件事:

1) 不要在 webViewDidFinishLoad 中重新加载 webView。相反,等到主线程上的下一个运行循环(允许 iOS 完全完成)。在 Objective C 中,我的代码看起来像

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;

关于ios - Swift:UIWebView 加载旧内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com