要做的需求是在一个webview加载之前显示“加载中”的view,等webview加载完毕以后移除该view,并加载webview。
利用
- -(void)webViewDidStartLoad:(UIWebView *)webView
- {
- NSLog(@"start");
- }
- -(void)webViewDidFinishLoad:(UIWebView *)webView
- {
- NSLog(@"end");
- }
方法来做,实际测试时发现start和end出现了多次,很奇怪。
后来调研了下,发现如果网页内有异步请求或者重定向时,就会多次调用上述方法,anyway,解决就好,解决方法是使用webView.isLoading属性。
- -(void)webViewDidFinishLoad:(UIWebView *)webView
- {
- if (webView.isLoading) {
- return;
- }
- //your code
- }