我怎样才能使按钮淡出然后使用swift 3使用函数淡入淡出

时间:2017-02-13 00:51:32

标签: animation swift3 xcode8

在使用swift 3的Xcode 8中,我有2个功能。当调用“HideButton”函数时,它会执行正确的淡出动画,但是当调用“ShowButton”函数时,不会发生淡入淡出动画。 “ShowButton”动画功能有什么问题吗?我该如何解决?

func HideButton() {

    UIView.animate(withDuration: 0.2, delay: 0, animations: {
    self.MainButton.alpha = 0
    }, completion: { finished in
    self.MainButton.isHidden = true
    })

    Timer.scheduledTimer(timeInterval: 1.2, target: self, selector: #selector(GameViewController.ShowButton), userInfo: nil, repeats: false)

}

func ShowButton() {

    UIView.animate(withDuration: 0.2, delay: 0, animations: {
    self.MainButton.alpha = 1
    }, completion: { finished in
    self.MainButton.isHidden = false
    })

    Timer.scheduledTimer(timeInterval: 1.2, target: self, selector: #selector(GameViewController.HideButton), userInfo: nil, repeats: false)

}

1 个答案:

答案 0 :(得分:1)

在hideButton函数中,isHidden属性设置为true。因此,这将限制按钮的功能并防止您尝试在showButton中呈现的视觉更改。因此,您需要在动画之前使按钮不被隐藏,而不是在完成处理程序中。

这样的事情:

{{1}}

因为在showButton动画开始时alpha将为零,所以尽管在动画发生之前isHidden属性为false,你仍然会获得所需的视觉效果。请注意,我重命名了您的函数以保留约定(funcs应该是小写的)!