2017-11-24 16 views
1

iOS Swiftを使用して外部ディスプレイを検出しようとしています。 2台目のディスプレイにはLightning Digital AV Adapterが接続されています。私はUIKItをインポートしました。 screen.count以下のコードを実行すると、すでに接続されている2つ目の画面でアプリケーションを起動してミラーリングしても1が表示されます。iOS Swiftによる外部画面の検出

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番目のディスプレイを検出する方法はありますか?

ありがとうございました

答えて

-1

を私はセットアップの通知場合UIScreen.screens.countのみ外部の第2の画面を確認することを発見しました。 http://tutorials.tinyappco.com/Swift/AdditionalScreen

+0

ミラー化された画面について通知されません –

+0

そうかもしれません。私にとって重要なことは、外部ディスプレイをUIScreens.screens数に含めることができ、それをテストして外部スクリーンにコンテンツを表示できるようにしたことでした。ご協力いただきありがとうございます。 – jumpwire

1

ミラー化された画面は画面配列では表示されません。代わりに、プロパティ

UPDATE mirroredScreenメイン画面を使用します。

let mirrored = UIScreen.main.mirrored 
self.initializeExternal(external: mirrored) 
+0

:私は最終的に== 2に「UIScreen.screens.count」だ通知センターでIセットアップオブザーバーたら、その後、私はUIScreen.screens 1

このページにビューを割り当てることができたの詳細を持っています先端に感謝します。どのようにミラーリングされた画面をテストするか考えていますか? 私はnilしか取得できません。それが初期化される前にゼロにならないようにする必要があるかもしれません。ミラー化された画面のドキュメントは、薄いです。以下のコードは、私が得ることができるほど近いです。 バールミラーリング:UIScreen! self.initializeExternalScreen(externalScreen:UIScreenとしてミラーリング) – jumpwire

+0

@jumpwire updated answer –

+0

@jumpwireご質問に合ったら回答を受け入れてください –

関連する問題