웹뷰 사용 시 페이지를 로딩하는 과정에 보여줄 spinner를 사용해보자.




1. Object library 에서 Activity indicator view를 찾아서 로딩을 보여줄 웹뷰 중앙에 위치시킨다.






2. 위치한 indicator view를 클릭하고 Attributes inspector 에서 아래 사진과 같이 Hides When Stopped 를 체크해준다.






3. controller 파일에 해당 indicator의 IBOutlet을 연결해준다.


@IBOutlet var spinner: UIActivityIndicatorView!






4. 클래스에 UIWebViewDelegate 프로토콜을 추가하고 viewDidLoad 메소드의 상단에 위의 코드를 삽입하여 델리게이트를 등록한다.


class DetailViewController: UIViewController,UIWebViewDelegate {

....

....

override func viewDidLoad() {

self.webView.delegate = self    //webView는 웹뷰의 IBOutlet 명

}





5. 마지막으로 페이지를 로드할 때 완료했을 때 로드 실패 했을때 동작을 넣어주면 된다. 


func webViewDidStartLoad(webView: UIWebView) { // 웹뷰가 페이지를 로드하기 시작할 때

        self.spinner.startAnimating()

 }

    

func webViewDidFinishLoad(webView: UIWebView) { // 웹뷰가 페이지 로드를 완료했을 때

        self.spinner.stopAnimating()

}

    

func webView(webView: UIWebView, didFailLoadWithError error: NSError?) { //웹뷰가 페이지 로드를 실패 했을 때

        self.spinner.stopAnimating()

}


+ Recent posts