我正在尝试使用swift在xcode中创建一个webapp,这是我当前的代码:
IBOutlet var webView: UIWebView!
var theBool: Bool = false
var myTimer = NSTimer()
@IBOutlet var progressBar: UIProgressView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "http://stackoverflow.com")
let request = NSURLRequest(URL: url)
webView.loadRequest(request)
}
Run Code Online (Sandbox Code Playgroud)
我有一个问题,我如何在webView中确定页面的完成加载?
您是否知道包含WebView所有定义的文档?我的意思是..(开始/结束加载,当前网址,标题页等)?
(对不起我的英语不好).
我想拍一张截图WKWebView.我在Web视图加载完成后立即调用该方法drawViewHierarchyInRect(屏幕更新设置为true) - 为此我观察loading了Web视图的属性.但是,我注意到,当Web视图通知我加载已完成时,它实际上并不显示在屏幕上.这就是截图始终只是白色的原因.当我在加载后0.5秒拍摄屏幕截图(显然太长)时,屏幕截图显示了所需的结果.我的问题是:我不知道网页视图何时实际显示在屏幕上,我可以将延迟设置为0.05,但我不能100%确定它每次都有效.因此,我的问题是:当Web视图实际显示并准备好截屏时,如何通知我.
提前致谢!
BTW:我正在使用Swift 2.0和iOS 9与Xcode 7(官方发布)
对于UIWebView,我们可以通过以下方式获得内容高度:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"]
Run Code Online (Sandbox Code Playgroud)
但是WKWebView没有这个方法,webView.scrollView.contentSize.height不对.
(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
内容更改时WKWebView没有调整大小.
这是一段代码:
@IBOutlet weak var containingView: UIView!
var webView: WKWebView!
override func viewDidLoad()
{
super.viewDidLoad()
let contentController = WKUserContentController();
self.webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), configuration: WKWebViewConfiguration())
self.webView.autoresizingMask = [.FlexibleHeight]
self.webView.loadHTMLString(__, baseURL: __))
self.webView.scrollView.bounces = false
self.webView.scrollView.scrollEnabled = false
self.containingView.addSubview(self.webView)
}
Run Code Online (Sandbox Code Playgroud)
应该添加什么功能,以便拦截更改的内容大小并相应地更改containsView大小?