我有两个 WKWebView 对象,它们是主视图层次结构中的子视图。我对 Swift 很陌生,所以我了解不多,但我正在尝试在这两个视图之间转换,并且一切都很完美,除了当我向右滑动时,向左滑动会按预期执行动画,但向右滑动会按预期执行动画然后什么都没有捕捉到页面。
func animateTranstion(fromLeft: Bool) {
let webViewToShow: WKWebView
let webViewToHide: WKWebView
let transitionOption: UIView.AnimationOptions
if fromLeft {
webViewToShow = webViewB
webViewToHide = webViewA
transitionOption = .transitionCrossDissolve
} else {
webViewToShow = webViewA
webViewToHide = webViewB
transitionOption = .transitionCrossDissolve
}
guard webViewToHide.isHidden == false else {
return
}
UIView.transition(with: webViewToShow, duration: 0.5, options: transitionOption, animations:) {
webViewToShow.isHidden = false
}) { _ in
webViewToHide.isHidden = true
}
}
我尝试使用 .alpha 而不是 .isHidden,我尝试更改持续时间和更改动画,甚至只是将动画硬编码到选项中。我跟踪变量到这个函数,所有对象都是正确的,它知道隐藏和显示哪些以及在哪里,但无论出于何种原因,动画都没有发生?
UIView.transition(with: webViewToShow, duration: 0.5, options: transitionOption, animations:) {
webViewToShow.isHidden = false
webViewToHide.isHidden = true
})
我最终更改了这个函数调用,现在过渡在两个方向上播放。