当前遇到一个UI问题,其中我将ViewController(2)嵌入到另一个ViewController(1)中。在ViewController(1)上,我点击一个按钮,该按钮弹出并为UIView设置动画,但是还有另一个按钮,当您点击该按钮时,它会滑动并为SideMenu设置动画。
我面临的问题是,当您点击UIView动画按钮并立即点击SideMenu按钮时,UIView会设置动画,但进入SideMenu动画的一半,当我第二次点击SideMenu按钮时,它将被截断并产生错误时间。看来UIView动画正在中断SideMenu动画。
此问题是否由于一次播放2个动画而中断了SideMenu动画?
这就是我将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
}
}
}