В настоящее время сталкиваюсь с проблемой пользовательского интерфейса, где у меня есть ViewController (2), встроенный в другой ViewController (1). На ViewController (1) я нажимаю на кнопку, которая появляется и анимирует UIView, однако есть другая кнопка, которая при нажатии скользит и анимирует SideMenu.
Проблема, с которой я сталкиваюсь, заключается в том, что когда вы нажимаете кнопку анимации UIView и сразу же нажимаете кнопку SideMenu, UIView анимирует, но на полпути в анимацию SideMenu, оно отключается и выдает ошибку, когда я нажимаю на SideMenu Кнопка во второй раз. Похоже, что анимация UIView прерывает анимацию SideMenu.
Эта проблема прерывания анимации SideMenu из-за одновременного воспроизведения 2 анимаций?
Вот как я встраиваю ViewController (2) на ViewController (1).
self.addChild(sideMenuViewController)
view.addSubview(sideMenuViewController.view)
sideMenuViewController.view.anchorwithConstant(top: view.topAnchor, bottom: view.bottomAnchor, leading: view.leadingAnchor, trailing: nil, paddingTop: 0, paddingBottom: 0, paddingLeading: -(view.bounds.width), paddingTrailing: 0, width: view.bounds.width, height: 0)
sideMenuViewController.didMove(toParent: self)
Вот как я анимирую UIView.
func animateShowDetailView() {
DispatchQueue.main.async {
UIView.animate(withDuration: 0.1, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 4, options: .curveEaseIn, animations: {
self.detailView.isHidden = false
self.detailView.alpha = 1.0
}) { (completed) in
self.mapControllerButtonsHandler(isEnabled: true)
}
}
}
Вот как я анимирую ViewController (2) aka SideMenu.
func handleSideMenuToggle(menuOption: MenuOption?) {
if expansionState == .NotExpanded {
animateInputView(targetPosition: view.frame.origin.x + view.frame.width) { (_) in
self.expansionState = .Expanded
}
}
}