我正在尝试创建一个基本动画。我需要触摸一个按钮来隐藏或显示。
我写了这段代码来点击屏幕:
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)
})
}
}
动画只是隐藏按钮。如何制作按钮的动画外观?
最佳答案
问题是,如果按钮被隐藏,您将 alpha 动画设置为 1,但我们看不到它 — 因为按钮被隐藏了!然后将 isHidden
设置为 false
,按钮就会跳转到 View 中。
解决方案:忘记所有关于 isHidden
的事情,只改变 alpha — 然后改变你的 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)
}
关于ios - 动画显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466952/