同步的 UIViewController 过渡动画

Simultaneous UIViewController Transition Animations

我正在尝试淡入背景渐变图像并将 uiview 卡片从底部(屏幕外)向上滑动到 uiviewcontroller 的中心 - 同时执行两个动画uiviewcontroller 以模态方式呈现。

我尝试的是将uiviewcontroller模态过渡样式设置为交叉溶解,这将为背景渐变图像提供淡入效果,并且在viewDidAppear 运行 将 uiview 卡片从底部向上滑动到中心的动画。

虽然这可行,但卡有轻微延迟,理想情况下我希望两个动画同时发生。

这样分组可行吗?任何指导将不胜感激。

下面是模态呈现的视图控制器中的相关代码:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    alertViewCenterYConstraint.constant += view.bounds.height

}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    UIView.animate(withDuration: 0.1, delay: 0, options: .curveEaseOut, animations: {
        self.alertViewCenterYConstraint.constant = 0
        self.view.layoutIfNeeded()
    }, completion: nil)
}

这个就像变魔术一样。我喜欢它。

   override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    alertViewCenterYConstraint.constant += view.bounds.height
    DispatchQueue.main.async {
    UIView.animate(withDuration: 0.1, delay: 0.05, options: .curveEaseOut, animations: {
        self.alertViewCenterYConstraint.constant = 0
        self.view.layoutIfNeeded()
    }, completion: nil)

    }
}