动画显示按钮

时间:2017-01-04 15:03:59

标签: ios swift xcode

我试图创建一个基本动画。我需要触摸一个按钮来隐藏或显示。

我写了这段代码来点击屏幕:

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)
                        })
    }
}

动画只是隐藏按钮。如何制作按钮的动画外观?

1 个答案:

答案 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)
}