使用 iOS Swift 检测外部屏幕
Posted
技术标签:
【中文标题】使用 iOS Swift 检测外部屏幕【英文标题】:Detecting External Screen with iOS Swift 【发布时间】:2018-05-08 22:24:48 【问题描述】:我正在尝试使用 ios Swift 检测外部显示器。第二台显示器与 Lightning 数字 AV 适配器连接。我已经导入了 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 检测第二个显示器?
谢谢
【问题讨论】:
【参考方案1】:我发现 UIScreen.screens.count 仅在我设置通知时才会确认外部第二个屏幕。一旦我在 NotificationCenter 中设置了观察者,我终于将 'UIScreen.screens.count' 设置为 == 2。然后我可以将视图分配给 UIScreen.screens1
此页面有详细信息: http://tutorials.tinyappco.com/Swift/AdditionalScreen
【讨论】:
镜像屏幕不会通知您 可能是这样。对我来说重要的是它使我能够在 UIScreens.screens 计数中包含外部显示器,以便我可以对其进行测试,然后在外部屏幕上显示内容。感谢您的帮助。【参考方案2】:镜像屏幕不在屏幕数组中表示。而是使用主屏幕 mirroredScreen 属性
更新:
let mirrored = UIScreen.main.mirrored
self.initializeExternal(external: mirrored)
【讨论】:
感谢您的提示。知道如何测试镜像屏幕吗?我只能得到零。它可能需要在不为零之前进行初始化。镜像屏幕上的文档很薄。下面的代码尽可能接近。 var 镜像:UIScreen! self.initializeExternalScreen(externalScreen: 镜像为 UIScreen) @jumpwire 请接受答案,如果它适合您的问题以上是关于使用 iOS Swift 检测外部屏幕的主要内容,如果未能解决你的问题,请参考以下文章