Swift iOS - второе UIWindow иногда анимирует от неправильных координат
У меня есть кнопка внутри VC. Когда я нажимаю эту кнопку, я запускаю второе окно UIWindow из нижнего правого угла экрана. По какой-то причине, когда он запускается, он иногда запускается из нижнего правого угла, как и предполагалось, но в других случаях он запускается из верхнего левого угла или середины экрана. Я пробовал звонить window.layoutIfNeeded()
внутри анимации, но это фактически испортило весь макет.
Почему он не начинается последовательно с правого нижнего угла экрана?
Второе окно начинается с небольшого кадра 10x10 в / ч в нижнем правом углу экрана, а затем анимируется в положение x/y 0,0, чтобы заполнить весь экран.
@IBAction fileprivate func launchSecondWindowButton(_ sender: UIButton) {
guard let mainWindow = UIApplication.shared.keyWindow else { return }
let myVC = MyController()
let nav = UINavigationController(rootViewController: myVC)
nav.navigationBar.isHidden = true
// starts from a small 10x10 w/h frame in the lower right hand corner of the screen
let startingFrame = CGRect(x: mainWindow.frame.width - 10, y: mainWindow.frame.height - 10, width: 10, height: 10)
let secondWindow = UIWindow(frame: startingFrame)
secondWindow.windowLevel = UIWindowLevelStatusBar
secondWindow.rootViewController = nav
secondWindow.makeKeyAndVisible()
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
secondWindow.frame = mainWindow.frame // this is the entire screen
// secondWindow.layoutIfNeeded() didn't help
}
}