[swift] Swift SkeletonView 웹 페이지 연동 방법

Swift SkeletonView는 앱의 로딩 상태를 시각적으로 표시할 수 있는 라이브러리입니다. 이 라이브러리를 사용하여 웹 페이지의 로딩 상태를 표시하는 방법에 대해 알아보겠습니다.

1. SkeletonView 설치

먼저, 프로젝트에 SkeletonView를 설치해야 합니다. Cocoapods를 사용하는 경우 Podfile에 다음과 같이 추가합니다.

pod 'SkeletonView'

설치 후, Xcode에서 pod install 명령을 실행하여 라이브러리를 프로젝트에 추가합니다.

2. WebView 설정

웹 페이지를 보여주기 위해 UIWebView 또는 WKWebView를 사용할 수 있습니다. 아래는 UIWebView를 사용하는 예시입니다.

import UIKit
import SkeletonView

class ViewController: UIViewController {

    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 웹뷰에 SkeletonView 적용
        webView.isSkeletonable = true
        webView.showSkeleton()
        
        // 웹 페이지 로딩
        let url = URL(string: "http://example.com")
        let request = URLRequest(url: url!)
        webView.loadRequest(request)
    }
}

위의 코드에서 webView.isSkeletonable = true로 SkeletonView를 활성화하고, webView.showSkeleton()으로 SkeletonView를 표시합니다. 그리고 webView.loadRequest로 웹 페이지를 로딩합니다.

3. 웹 페이지 로딩 상태 표시

SkeletonView는 앱의 로딩 상태를 시각적으로 표시할 수 있도록 도와줍니다. 웹 페이지 로딩이 완료되기 전까지는 SkeletonView가 표시되며, 로딩이 완료되면 SkeletonView가 사라집니다.

UIWebViewDelegate를 구현하여 웹 페이지 로딩 상태를 감지하고, 로딩이 완료되면 SkeletonView를 숨기도록 구현할 수 있습니다. 아래는 예시 코드입니다.

class ViewController: UIViewController, UIWebViewDelegate {

    // ...

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // ...

        // delegate 설정
        webView.delegate = self
    }
    
    func webViewDidFinishLoad(_ webView: UIWebView) {
        // 로딩이 완료되면 SkeletonView 숨기기
        webView.hideSkeleton()
    }
}

webViewDidFinishLoad 메서드는 웹 페이지 로딩이 완료되면 호출되는 메서드입니다. 이 메서드 내에서 webView.hideSkeleton()을 호출하여 SkeletonView를 숨깁니다.

참고 자료

위의 방법을 따라하면 Swift SkeletonView를 사용하여 웹 페이지의 로딩 상태를 시각적으로 표시할 수 있습니다. 추가적인 기능과 옵션에 대해서는 SkeletonView 공식 GitHub 페이지를 참고하시기 바랍니다.