У меня есть задание сделать всплывающее окно с изменяемым размером в зависимости от ориентации устройства Я инстанцирую это через окно вот так.
let window = UIApplication.shared.keyWindow
let popOver = DeletePopUpViewController(nibName: "DeletePopUpViewController", bundle: nil)
popOver?.loadViewIfNeeded()
popOver?.view.frame = window!.frame
window?.addSubview(popOver!.view)
Я добавил ограничения в IB, поскольку моя задача на данный момент не должна быть изменяемой. Теперь мне нужно перенести мои ограничения в код, и это то, что беспокоит меня. Я смог обнаружить изменение ориентации с помощью наблюдателя, как -
NotificationCenter.default.addObserver(self, selector: #selector(rotated), name: UIDevice.orientationDidChangeNotification, object: nil)
@objc private func rotated() {
if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft || UIDevice.current.orientation == UIDeviceOrientation.landscapeRight {
//code to implement constraints and size in landscape.
}
if UIDevice.current.orientation == UIDeviceOrientation.portrait || UIDevice.current.orientation == UIDeviceOrientation.portraitUpsideDown {
//code to implement constraints and size in portrait.
}
}
Не могли бы вы дать мне несколько советов, с чего начать, так как я довольно новичок в Swift и не сделал много ограничений в коде. Также статья будет полезна. В принципе, любая помощь приветствуется.
Заранее спасибо.