我试图创建一个基本动画。我需要触摸一个按钮来隐藏或显示。
我写了这段代码来点击屏幕:
func visibleControlButton(_ sender: UITapGestureRecognizer) {
if (backButton!.isHidden) {
_UIButtonHiddenAnimation.hiddenAnimation(button: self.backButton!, hide: false)
} else {
_UIButtonHiddenAnimation.hiddenAnimation(button: self.backButton!, hide: true)
}
}
定义_UIButtonHiddenAnimation:
class _UIButtonHiddenAnimation {
class func hiddenAnimation(button: UIButton, hide: Bool) {
UIView.animate(withDuration: 0.2,
animations: {
hide ? (button.alpha = 0) : (button.alpha = 1.0)
},
completion: {
finished in hide ? (button.isHidden = true) : (button.isHidden = false)
})
}
}
动画只是隐藏按钮。如何制作按钮的动画外观?
答案 0 :(得分:2)
问题是,如果按钮被隐藏,你将alpha动画为1但我们看不到 - 因为按钮被隐藏了!然后将isHidden
设置为false
,按钮将跳转到视图中。
解决方案:忘记关于isHidden
的所有内容并仅更改字母 - 然后更改您的if
测试以匹配您使用按钮执行的操作,即只需针对其alpha
进行测试值。因此(随着时间的推移把事情搞定):
class _UIButtonHiddenAnimation {
class func hiddenAnimation(button: UIButton, hide: Bool) {
UIView.animate(withDuration: 0.2, animations: {
button.alpha = hide ? 0 : 1.0
})
}
}
func visibleControlButton(_ sender: UITapGestureRecognizer) {
_UIButtonHiddenAnimation.hiddenAnimation(
button: self.backButton!, hide: backButton!.alpha > 0.1)
}