【问题标题】:Hide view and apply hide effect - Swift隐藏视图并应用隐藏效果 - Swift
【发布时间】:2020-11-11 15:30:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios swift visibility rx-swift rx-cocoa


    【解决方案1】:

    这样使用

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

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

    【讨论】:

    • 这个解决方案与我提出的方案有什么不同?
    • 两者都有效,只是我没有注意到您添加了解决方案 :) 之前已经开始输入。
    【解决方案2】:

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

    解决办法:

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

    RxSwift 解决方案:

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-27
        相关资源
        最近更新 更多