Использовали ли вы UIActivityIndicatorView и как его правильно настраивать?

«Использовали ли вы UIActivityIndicatorView и как его правильно настраивать?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, UIActivityIndicatorView — стандартный элемент для отображения индикатора загрузки.

Базовая настройка (программно):

let spinner = UIActivityIndicatorView(style: .large)
spinner.color = .systemBlue
spinner.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(spinner)
NSLayoutConstraint.activate([
    spinner.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    spinner.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
spinner.startAnimating() // Запуск анимации
// ...
spinner.stopAnimating() // Остановка анимации

Ключевые моменты:

  • Стили: Для iOS 13+ используйте .large, .medium или .style для адаптивного цвета.
  • Управление: Индикатор не останавливается автоматически — всегда вызывайте stopAnimating().
  • SwiftUI: Аналог — ProgressView с модификатором .progressViewStyle(.circular).
  • Доступность: Для скринридеров рекомендуется устанавливать spinner.isAccessibilityElement = true и spinner.accessibilityLabel = "Загрузка".