[swift] Swift SkeletonView 지도 연동 방법

지도와 함께 SkeletonView를 사용하여 사용자에게 로딩 상태를 시각적으로 표시하고 싶다면, 다음과 같이 Swift에서 SkeletonView를 지도에 연동할 수 있습니다.

1. SkeletonView 설치

먼저, SkeletonView를 설치해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음을 추가합니다:

pod 'SkeletonView'

그런 다음 터미널에서 다음을 실행하여 의존성을 설치합니다:

pod install

2. 지도 뷰와 SkeletonView 연결

SkeletonView를 사용하려는 ViewController 클래스를 만들고, 지도 뷰를 표시할 컨테이너 뷰를 추가합니다. 그런 다음, 지도 뷰와 SkeletonView를 연결해야 합니다. 다음은 연결 방법의 예시입니다:

import UIKit
import MapKit
import SkeletonView

class MapViewController: UIViewController {
    
    @IBOutlet weak var mapView: MKMapView!
    @IBOutlet weak var skeletonContainerView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        mapView.isSkeletonable = true
        mapView.showAnimatedGradientSkeleton(usingGradient: .init(baseColor: UIColor.lightGray), transition: .crossDissolve(0.5))
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        // 테스트를 위해 2초 후에 SkeletonView를 숨깁니다
        DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
            self.mapView.hideSkeleton()
        }
    }
}

위의 코드에서, mapView는 지도를 나타내는 MKMapView입니다. skeletonContainerView는 SkeletonView의 컨테이너 뷰로, 지도 뷰 위에 겹쳐져 있어 로딩 효과를 제공합니다.

viewDidLoad 함수에서는 isSkeletonable 속성을 true로 설정하고, showAnimatedGradientSkeleton 함수를 호출하여 SkeletonView를 화면에 표시합니다.

viewDidAppear 함수에서는 일정 시간이 지난 후에 SkeletonView를 숨기기 위해 hideSkeleton 함수를 호출합니다.

3. 추가 설정 및 사용자 정의

SkeletonView는 여러 가지 설정 옵션을 제공합니다. 사용자 정의를 원하는 경우, SkeletonView의 공식 문서를 참조하면 도움이 됩니다. SkeletonView 공식 문서

SkeletonView를 지도와 연동하는 방법에 대해 알아보았습니다. 이렇게 하면 지도와 함께 로딩 상태를 시각화할 수 있으며, 사용자에게 더 나은 사용 경험을 제공할 수 있습니다.