Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 动画显示按钮_Ios_Swift_Xcode - Fatal编程技术网

Ios 动画显示按钮

Ios 动画显示按钮,ios,swift,xcode,Ios,Swift,Xcode,我正在尝试创建一个基本的动画。我需要按一个按钮来隐藏或显示 我编写了以下代码来点击屏幕: func visibleControlButton(_ sender: UITapGestureRecognizer) { if (backButton!.isHidden) { _UIButtonHiddenAnimation.hiddenAnimation(button: self.backButton!, hide: false) } else { _U

我正在尝试创建一个基本的动画。我需要按一个按钮来隐藏或显示

我编写了以下代码来点击屏幕:

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,但我们无法看到,因为按钮被隐藏!然后将
ishiden
设置为
false
,按钮跳入视图

解决方案:忘记所有关于
ishiden
的内容,只更改alpha-值,然后更改
if
测试以匹配您使用按钮所做的操作,即只需根据其
alpha
值进行测试。因此(在进行过程中整理):


问题是,如果按钮是隐藏的,您正在将alpha设置为1,但我们无法看到,因为按钮是隐藏的!然后将
ishiden
设置为
false
,按钮跳入视图

解决方案:忘记所有关于
ishiden
的内容,只更改alpha-值,然后更改
if
测试以匹配您使用按钮所做的操作,即只需根据其
alpha
值进行测试。因此(在进行过程中整理):


你写的代码应该隐藏和显示得很好。问题是在按钮隐藏后,您不能点击同一个按钮。因此,您不应该在完成块中编写
self.ishiden
代码,并且您可以很好地理解您编写的代码应该隐藏并显示得很好。问题是在按钮隐藏后,您不能点击同一个按钮。因此,您不应该在完成块中编写
self.ishiden
代码,您就可以开始了
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)
}