【问题标题】:Fade out UIButton slowly慢慢淡出 UIButton
【发布时间】:2014-08-03 21:38:52
【问题描述】:

我正在尝试添加动画以在点击按钮时淡出按钮。我现在使用的代码只是等待几秒钟,然后几乎立即淡出按钮。我想知道如何在点击按钮后立即开始淡出按钮并使淡入淡出持续大约一秒钟?

这是我目前正在使用的代码:

UIView.animateWithDuration(1.5, 
    delay: 0, 
    options: UIViewAnimationOptions.CurveLinear, 
    animations: {
        self.valueEnter.alpha = 0
    }, completion: nil)

【问题讨论】:

  • 这应该可以。动画断断续续的最可能原因是,如果您在主线程本应运行的时候做一些繁重的工作。您执行此动画的方法中还有什么?
  • 此方法中没有其他内容。它的唯一目的是关闭键盘。它看起来并不波涛汹涌,只是它似乎延迟了一两秒,然后执行动画。
  • 您在哪个线程上运行此代码?如果您不在 UI 线程上运行它,您的症状很可能会出现。我们可以得到更多的上下文,好吗?例如,此代码是否作为完成处理程序的一部分运行?

标签: uibutton swift uiviewanimation


【解决方案1】:
  1. 故事板/笔尖中的选择按钮
  2. 打开连接检查器
  3. 连接按钮 Touch DownTouch Up Inside 事件:

...到以下方法:

@IBAction func fadeButtonTouchDown(sender: UIButton) {
    sender.highlighted = false
    UIView.animateWithDuration(1.5,
        delay: 0,
        options: .CurveLinear & .AllowUserInteraction & .BeginFromCurrentState,
        animations: {
            sender.alpha = 0
        }, completion: nil)
}

@IBAction func fadeButtonTouchUpInside(sender: UIButton) {
    sender.highlighted = false
}

备注:方法应该添加到您的视图控制器中。

【讨论】:

  • 感谢您的回复,但这似乎做同样的事情。大约一秒钟没有任何反应,然后按钮迅速消失。
  • 我再次检查了代码,它工作得很好。在模拟器和 iPhone4 中测试。请仔细检查按钮事件是否正确连接,并且动画选项的设置与代码示例中的完全相同。您可以通过将动画持续时间设置为 0.1 并在模拟器中切换慢速动画来直观地验证动画是否立即开始;很容易没有注意到动画在用户点击按钮后开始。
【解决方案2】:

问题在于淡出按钮,而不是使用

    self.valueEnter.alpha = 100

我应该一直在使用

    self.valueEnter.alpha = 1

我没有意识到范围在 0 和 1 之间,而不是 0 和 100 之间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2011-05-04
    • 2011-08-05
    相关资源
    最近更新 更多