Обнаружение внешнего экрана с помощью iOS Swift

Я пытаюсь определить внешний дисплей с помощью iOS Swift. Второй дисплей связан с цифровым AV-адаптером Lightning. Я импортировал UIKIt. Когда я запускаю код ниже, screens.count просто дает мне 1, даже если я запускаю приложение с уже прикрепленным вторым экраном и зеркалированием.

    override func viewDidLoad() {
    super.viewDidLoad()

    // Initialize an external screen if one is present
    let screens = UIScreen.screens
    print(screens.count)

    txtDisplay.text = String(screens.count)
    if screens.count > 1 {
        print("A second screen has been detected")
        //An external screen is available. Get the first screen available
        //self.initializeExternalScreen(externalScreen: screens[1] as UIScreen)
    }


}

Я загрузил демонстрационные приложения, которые утверждают, что имеют эту функциональность, но я просто получаю тот же результат. Любые идеи, как я могу обнаружить второй дисплей с помощью Swift?

Спасибо

2 ответа

Решение

Я обнаружил, что UIScreen.screens.count будет подтверждать внешний второй экран, только если я настрою уведомления. После того, как я настроил наблюдателей в NotificationCenter, я, наконец, получил "UIScreen.screens.count" в == 2. Затем я смог назначить представление для UIScreen.screens 1

Эта страница содержит подробную информацию: http://tutorials.tinyappco.com/Swift/AdditionalScreen

Зеркальные экраны не представлены на экранах Array. Вместо этого используйте главное свойство экрана mirroredScreen.

ОБНОВИТЬ:

let mirrored = UIScreen.main.mirrored
self.initializeExternal(external: mirrored)
Другие вопросы по тегам