Swift, WKWebView에서 Loaidng 띄우기
WKWebView를 이용한 웹뷰를 작성할때
페이지가 변경될때 로딩 이미지를 띄워주려고 한다.
Xcode 7.3, iOS 9
1. 가운데 로딩 이미지를 띄워주면서
2. 상단 status bar에도 activity indicator가 나오게 할 것이다.
여기에는 기본만 적어본다.
여기서는 WKNavigationDelegate가 쓰인다.
따라서 view를 load하는 부분에 webView!.navigationDelegate = self 가 필요하다.
그리고 아래와 같이 작성하면 된다.
var activityIndicator = UIActivityIndicatorView()
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
// 1. 가운데 로딩 이미지를 띄워주면서
activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
activityIndicator.frame = CGRect(x: view.frame.midX - 25, y: view.frame.midY - 25 , width: 50, height: 50)
activityIndicator.hidesWhenStopped = true
activityIndicator.startAnimating()
view.addSubview(activityIndicator)
// 2. 상단 status bar에도 activity indicator가 나오게 할 것이다.
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
// 1. 제거
self. activityIndicator.removeFromSuperview
// 2. 제거
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
간단한 indicator를 만들더라고 신경을 좀 써주어야 할 것이다.
그렇지 않다면 다음과 같은 리뷰를 받을 수 있다...