Можно ли изменить разрешение AirPlay UIScreen?
Я работаю с AirPlay, и в настоящее время я могу запустить контроллер представления на внешнем экране. Тем не менее, я также хотел бы настроить разрешение потока и соотношение сторон. У меня внешний монитор 1920x1080 (16:9), но я бы хотел сохранить соотношение сторон 4:3 для iPad (чтобы графический интерфейс выглядел так же, как на iPad) с более низким разрешением, чем 1920x1080 (чтобы повысить производительность Посмотреть). Это возможно?
Мой код в настоящее время выглядит примерно так (без ненужных вещей):
import UIKit
class ViewController: UIViewController {
private var externalWindow: UIWindow?
private func setupScreenNotifications() {
let center = NotificationCenter.default
center.addObserver(self, selector: #selector(ViewController.externalScreenDidConnect), name: NSNotification.Name.UIScreenDidConnect, object: nil)
center.addObserver(self, selector: #selector(ViewController.externalScreenDidDisconnect), name: NSNotification.Name.UIScreenDidDisconnect, object: nil)
}
func externalScreenDidConnect(notification: NSNotification) {
guard let screen = notification.object as? UIScreen else {
return
}
setupExternalScreen(screen: screen)
}
func externalScreenDidDisconnect(notification: NSNotification) {
guard let _ = notification.object as? UIScreen else {
return
}
teardownExternalScreen()
}
private func setupExternalScreen(screen: UIScreen) {
guard externalWindow == nil,
let vc = self.storyboard?.instantiateViewController(withIdentifier: "procedureViewController") as? ProcedureViewController else {
return
}
externalWindow = UIWindow(frame: CGRect(x: 0, y: 0, width: 1024, height: 768))
externalWindow!.rootViewController = vc
externalWindow!.screen = screen
externalWindow!.isHidden = false
}
private func teardownExternalScreen() {
guard let ew = externalWindow else { return }
ew.isHidden = true
externalWindow = nil
}
override func viewDidLoad() {
super.viewDidLoad()
setupScreenNotifications()
if UIScreen.screens.count > 1 {
setupExternalScreen(screen: UIScreen.screens[1])
}
}
}
Единственный доступный UIScreenMode <UIScreenMode: 0x1780386e0; size = 1920.000000 x 1080.000000>
так что не повезло. Можно ли принудительно изменить разрешение другим способом? Я хотел бы установить его явно 1024x768.
Спасибо,
Даниил