隐藏视图并应用隐藏效果 - Swift

Hide view and apply hide effect - Swift

我想在使用以下代码关闭按钮的可见性时提供 alpha 效果。然而,在下面的代码中,alpha 效果可以正常工作,但会立即变为 ,而无需等待 0.5 秒的可见性。

你有解决这个问题的替代建议吗?特别是如果你有 RxSwift、RxCoca 的解决方案,那就太好了。谢谢

self.button.alpha = 1.0
UIView.animate(withDuration: 0.5) {
          self.button.alpha = 0
          self.button.isHidden = true
  }
动画块中的

self.button.isHidden = true 导致立即消失,因为此 属性 不可设置动画。
动画 alpha 是你应该保留的。

解决方案:

self.button.alpha = 1.0
UIView.animate(withDuration: 0.5) {
  self.button.alpha = 0
}

RxSwift 解决方案:

你需要像这样使用它..你需要在动画完成时隐藏按钮而不是在动画块中,因为 isHidden 属性 不是动画所以它立即隐藏按钮

  self.button.alpha = 1.0
    UIView.animateKeyframes(withDuration: 0.5, delay: 0 ,animations: {
        self.button.alpha = 0
    }) { _ in
          self.button.isHidden = true
    }

这样使用

        UIView.animate(withDuration: 0.5, animations: {
            self.button.alpha = 0
        }) { (_) in
            self.button.isHidden = true
        }

在视图的 alpha 更改为 0 后隐藏按钮。 您的代码中的问题是按钮隐藏在动画块中,因此动画在视图已经隐藏时发生。