同步的 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)
}
}
我正在尝试淡入背景渐变图像并将 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)
}
}