랭귀지/SWIFT
액티비티 인디케이터 구현하기
유키공
2018. 1. 23. 14:30
웹 뷰로 간단한 웹 브라우져 만들기 2
웹 페이지를 로딩할 떼 네트워크 속도가 느리거나 서버에 부하가 많이 걸려 로딩이 오래 걸릴때 필요한 것이 바로 액티비티 인디케이터 입니다.액티비티 인디케이터는 원형으로 돌아가는 애니메이션 효과로, 앱이 동작 중임을 사용자에게 보여 줍니다.override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
myWebView.delegate = self
//앱이 처음 나타나면 접속할 웹 페이지 주소를 추가 합니다.
loadWebPage("http://www.todaymart.com")
}
func webViewDidStartLoad(_ webView: UIWebView) {
myActivityindicator.startAnimating()
}
func webViewDidFinishLoad(_ webView: UIWebView) {
myActivityindicator.stopAnimating()
}
import UIKit //webViewDidStartLoad, webViewDidFinishLoad 함수를 //사용하기 위하여 UIWebViewDelegate를 상속 받습니다. class ViewController: UIViewController, UIWebViewDelegate { @IBOutlet weak var txtUrl: UITextField! @IBOutlet weak var myWebView: UIWebView! @IBOutlet weak var myActivityindicator: UIActivityIndicatorView! func loadWebPage(_ url: String) { //상수 myUrl은 url 값을 받아 URL형으로 선언합니다. let myUrl = URL(string: url) //상수 myRequest는 상수 myUrl을 받아 URLRequest형으로 선언합니다. let myRequest = URLRequest(url: myUrl!) //UIWebView형의 myWebView 클래스의 loadRequest 메서드를 호출합니다. myWebView.loadRequest(myRequest) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //myWebView 의 delegate 를 self 로 추가 합니다. myWebView.delegate = self //앱이 처음 나타나면 접속할 웹 페이지 주소를 추가 합니다. loadWebPage("http://www.todaymart.com") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func webViewDidStartLoad(_ webView: UIWebView) { //액티비티 인디케이터 동작을 시작하는 함수 myActivityindicator.startAnimating() } func webViewDidFinishLoad(_ webView: UIWebView) { ////액티비티 인디케이터 동작을 종료하는 함수 myActivityindicator.stopAnimating() } @IBAction func btnGoUrl(_ sender: UIButton) { } @IBAction func btnGoSite1(_ sender: UIButton) { } @IBAction func btnGoSite2(_ sender: UIButton) { } @IBAction func btnLoadHtmlString(_ sender: UIButton) { } @IBAction func btnLoadHtmlFile(_ sender: UIButton) { } @IBAction func btnStop(_ sender: UIBarButtonItem) { } @IBAction func btnReload(_ sender: UIBarButtonItem) { } @IBAction func btnGoBack(_ sender: UIBarButtonItem) { } @IBAction func btnGoForward(_ sender: UIBarButtonItem) { } }
위치 |
myWebview 아우렛 변수 바로 아래 |
연결(Connection) |
Outlet |
이름(Name) |
myActivityindicator |
유형(Tyoe) |
UIactivityIndicatorView |
@IBOutlet weak var myActivityindicator: UIActivityIndicatorView! |
[결과화면]
홈페이지에 접속할 때 액티비티 인디케이터가 동작하게 되면 이동이 되는 것을 확인할 수 있습니다.