앱에서 네트워크 요청 시 화면 상에 활동 표시기를 표시하는 것은 사용자에게 진행중인 작업을 시각적으로 보여주는 좋은 방법입니다. 이번에는 Alamofire를 사용하여 네트워크 활동 표시기를 동적으로 위치시키는 방법에 대해 알아보겠습니다.
요구 사항
이 예제에서는 다음과 같은 요구 사항이 있습니다.
- Swift 프로젝트
- Alamofire 라이브러리가 프로젝트에 설치되어 있어야 합니다.
액티비티 인디케이터 뷰 생성하기
먼저, 앱에서 사용할 액티비티 인디케이터 뷰를 생성합니다. 이 뷰는 네트워크 작업이 실행될 때 나타날 동그란 로딩 인디케이터입니다.
let activityIndicator = UIActivityIndicatorView(style: .gray)
activityIndicator.center = view.center
activityIndicator.hidesWhenStopped = true
view.addSubview(activityIndicator)
네트워크 요청 시 활동 표시기 표시하기
이제 Alamofire를 사용하여 네트워크 요청을 보낼 때마다 활동 표시기를 표시하고, 요청이 완료될 때 숨기도록 구현해보겠습니다.
import Alamofire
func makeNetworkRequest() {
// 활동 표시기 표시
activityIndicator.startAnimating()
AF.request("https://api.example.com/data").responseJSON { response in
// 네트워크 요청 완료 후 활동 표시기 숨김
activityIndicator.stopAnimating()
// 응답 처리 로직
switch response.result {
case .success(let data):
// 성공 처리 로직
print(data)
case .failure(let error):
// 실패 처리 로직
print(error)
}
}
}
위 코드에서는 네트워크 요청 전 activityIndicator.startAnimating()
으로 활동 표시기를 표시하고, 요청이 완료된 후 activityIndicator.stopAnimating()
으로 숨깁니다. 네트워크 요청의 성공 또는 실패 여부에 따라 적절한 처리를 하면 됩니다.
추가 설정 옵션
활동 표시기를 표시하는 위치를 동적으로 변경하고 싶다면, activityIndicator.center
의 값을 조절하여 원하는 위치로 이동시킬 수 있습니다. 예를 들어, 네트워크 요청이 실행되는 동안 뷰의 상단 중앙에 표시하고 싶다면 다음과 같이 설정할 수 있습니다.
activityIndicator.center = CGPoint(x: view.center.x, y: view.frame.height / 4)
위 예제에서는 activityIndicator.center.y
값을 뷰의 높이의 1/4로 설정하여 상단 중앙에 표시합니다.
결론
Swift에서 Alamofire를 사용하여 네트워크 활동 표시기의 위치를 동적으로 변경하는 방법에 대해 알아보았습니다. 활동 표시기를 적절한 위치에 표시하여 사용자에게 진행중인 작업을 시각적으로 보여줄 수 있습니다. 이를 통해 사용자 경험을 향상시킬 수 있습니다.
자세한 내용과 더 많은 옵션에 대해서는 Alamofire 공식 문서를 참고하시기 바랍니다.