[swift] - Swift에서 Alamofire의 네트워크 활동 표시기 위치를 사용자 정의하는 방법

앱의 네트워크 활동 표시기를 사용자 정의하고 싶다면, Alamofire라는 훌륭한 네트워킹 라이브러리에서 제공하는 많은 기능을 활용할 수 있습니다. 이 글에서는 Swift에서 Alamofire의 네트워크 활동 표시기 위치를 사용자 정의하는 방법에 대해 알아보겠습니다.

사용자 정의 위치 설정

Alamofire는 기본적으로 네트워크 활동 표시기를 상태 바에 위치시킵니다. 그러나 이 위치가 사용자에게 항상 편리하지는 않을 수 있습니다. 사용자가 직접 원하는 위치에 네트워크 활동 표시기를 배치하려면 다음과 같은 단계를 따르면 됩니다.

  1. AppDelegate.swift 파일을 열고 application(_:didFinishLaunchingWithOptions:) 메서드 내에 다음 코드를 추가합니다.
import AlamofireNetworkActivityIndicator

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
   NetworkActivityIndicatorManager.shared.isEnabled = true
   NetworkActivityIndicatorManager.shared.startDelay = 0
   NetworkActivityIndicatorManager.shared.completionDelay = 1.0
   NetworkActivityIndicatorManager.shared.completionHandler = { state in
       // 사용자 정의 위치에서 네트워크 활동 표시기 처리
   }

   return true
}
  1. “사용자 정의 위치에서 네트워크 활동 표시기 처리” 부분에 네트워크 활동 표시기를 위치시키고자 하는 위치에 대한 코드를 추가합니다.

예를 들어, 사용자가 메인 뷰 컨트롤러의 네비게이션 바에 네트워크 활동 표시기를 위치시키고 싶다면, 다음과 같이 코드를 작성할 수 있습니다.

if let navigationController = window?.rootViewController as? UINavigationController {
   let networkActivityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)
   networkActivityIndicator.startAnimating()
   navigationController.navigationBar.addSubview(networkActivityIndicator)
   networkActivityIndicator.translatesAutoresizingMaskIntoConstraints = false
   NSLayoutConstraint.activate([
       networkActivityIndicator.centerYAnchor.constraint(equalTo: navigationController.navigationBar.centerYAnchor),
       networkActivityIndicator.centerXAnchor.constraint(equalTo: navigationController.navigationBar.centerXAnchor)
   ])
}
  1. 앱을 실행하고 네트워크 요청이 있을 때마다 원하는 위치에 네트워크 활동 표시기가 나타나는지 확인하세요.

요약

Swift에서 Alamofire의 네트워크 활동 표시기 위치를 사용자 정의하는 방법을 알아보았습니다. 이를 통해 앱의 사용자 인터페이스를 개선하고 네트워크 활동을 더 직관적으로 표시할 수 있습니다.

참고 자료