Swift, WKWebView에서 Loaidng 띄우기

2016. 7. 5. 14:51개발/iOS


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를 만들더라고 신경을 좀 써주어야 할 것이다.

그렇지 않다면 다음과 같은 리뷰를 받을 수 있다...