在使用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)
}
答案 0 :(得分:1)
在hideButton函数中,isHidden属性设置为true。因此,这将限制按钮的功能并防止您尝试在showButton中呈现的视觉更改。因此,您需要在动画之前使按钮不被隐藏,而不是在完成处理程序中。
这样的事情:
{{1}}
因为在showButton动画开始时alpha将为零,所以尽管在动画发生之前isHidden属性为false,你仍然会获得所需的视觉效果。请注意,我重命名了您的函数以保留约定(funcs应该是小写的)!