UIView 过渡在一个方向上工作,但在另一个方向上不起作用

问题描述 投票:0回答:1

我有两个 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,我尝试更改持续时间和更改动画,甚至只是将动画硬编码到选项中。我跟踪变量到这个函数,所有对象都是正确的,它知道隐藏和显示哪些以及在哪里,但无论出于何种原因,动画都没有发生?

ios swift uiview webkit wkwebview
1个回答
0
投票
UIView.transition(with: webViewToShow, duration: 0.5, options: transitionOption, animations:) {
     webViewToShow.isHidden = false 
     webViewToHide.isHidden = true
}) 

我最终更改了这个函数调用,现在过渡在两个方向上播放。

© www.soinside.com 2019 - 2024. All rights reserved.