Swift에서 UIActivityIndicator 크기를 변경할 수 있을까?
결론부터 말하면, Swift에서 몇 가지 트릭을 사용하면 UIActivityIndicator의 크기를 변경하는 것이 가능하지만, 공식적으로 권장되는 방법은 아닙니다. 이번 글에서는 실제로 크기를 조절해 보고, 왜 권장되지 않는지 그 이유까지 함께 살펴보겠습니다.
1. 기본 상태의 액티비티 인디케이터 확인하기
먼저 빈 화면에 액티비티 인디케이터를 하나 추가하고, 기본 상태에서 어떻게 보이는지 확인해 보겠습니다. 이 예제에서는 인디케이터의 색상도 빨간색으로 변경해 보겠습니다.
크기 변경 없이 그대로 실행하면 다음과 같이 나타납니다.

2. CGAffineTransform으로 크기 조절하기
이제 뷰 컨트롤러에 액티비티 인디케이터의 아울렛(Outlet)을 생성하고, 해당 클래스의 viewDidLoad 메서드에 아래 코드를 추가합니다.
여기서는 CGAffineTransform을 사용하여 인디케이터의 배율(scale)을 변경합니다. 배율을 2.5배로 설정한 코드는 다음과 같습니다.
let transform = CGAffineTransform.init(scaleX: 2.5, y: 2.5)
activityIndicator.transform = transform
위 코드를 적용하고 실행하면 인디케이터가 2.5배 커진 것을 확인할 수 있습니다.

3. 왜 권장되지 않는 방법일까?
확대된 결과를 자세히 보면 이미지가 흐릿하게(blur) 보이고, 원래 인디케이터만큼 선명하지 않은 것을 알 수 있습니다. 이는 CGAffineTransform이 단순히 기존 뷰를 비율에 맞게 늘리기 때문에 발생하는 현상입니다.
따라서 CGAffineTransform을 이용한 크기 변경은 시각적인 품질 저하를 일으킬 수 있으므로, 액티비티 인디케이터의 크기를 늘리는 방법으로는 권장되지 않습니다.
정리
- CGAffineTransform의 scaleX, scaleY 값을 조절하면 UIActivityIndicator의 크기를 변경할 수 있습니다.
- 다만 확대 시 흐릿하게 렌더링되어 품질이 떨어집니다.
- 더 큰 로딩 인디케이터가 필요하다면 커스텀 인디케이터 구현이나 다른 UI 요소 사용을 고려하는 것이 좋습니다.