Ответ
Количество экземпляров UIScreen динамически определяется числом подключенных физических дисплеев.
Основные принципы:
- Главный экран: Всегда существует
UIScreen.main. - Внешние дисплеи: Доступны через массив
UIScreen.screens. При подключении/отключении дисплеев этот массив обновляется.
Практическое использование:
// Получение списка всех активных экранов
let allScreens = UIScreen.screens // [UIScreen]
print("Active screens: (allScreens.count)")
// Реакция на подключение внешнего дисплея
NotificationCenter.default.addObserver(
forName: UIScreen.didConnectNotification,
object: nil,
queue: .main
) { notification in
if let newScreen = notification.object as? UIScreen {
// Настроить окно (UIWindow) для нового экрана
}
}
Ограничения:
- На iPhone обычно 1 экран.
- На iPad с поддержкой Stage Manager или при подключении к внешнему монитору/проектору может быть от 2 до 4 экранов.
- Теоретический максимум зависит от аппаратных возможностей и операционной системы.