func create()
{
self.Instance!.viewController!.loadCategory(category: 0)
/*
repeat
{
print("Loading category section!")
}
while (self.Instance!.viewController!.isLoading!)
*/
}
上面的代码显示我可以设置延迟,直到isLoading为false;但是,它永远不会变错,因为它会锁定线程。
我如何在后台拥有此功能?
由于
LoadCategory使用wkwebview加载网站的类别页面,并在加载网页内容时将isLoading设置为true,并在加载完毕后将其设置为false
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
{
print("Finished navigating to url \(String(describing: webView.url))")
self.isLoading = false
}
这是我的函数,它在完成加载内容后将其设置为self.isLoading为false。
答案 0 :(得分:1)
在Swift中,您可以使用 Grand Central Dispatch
在给定的延迟后执行关闭这是代码
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
print("This will be executed 2 seconds in the future")
}
不要忘记
import Foundation
答案 1 :(得分:1)
WKWebView
可以有导航委托(WKNavigationDelegate
)。该委托可以实现一个名为webView:didFinishNavigation
(https://developer.apple.com/reference/webkit/wknavigationdelegate/1455629-webview)的方法,该方法将告诉您Web视图何时完成加载内容。
根据您的代码,您的viewController可能可以设置为Web视图的委托,并可以在加载内容后执行您想要的任何操作。