Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.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/9/delphi/8.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 UIButton可在屏幕上设置动画,但停止工作-SWIFT_Ios_Swift_Uibutton_Uistackview_Stackview - Fatal编程技术网

Ios UIButton可在屏幕上设置动画,但停止工作-SWIFT

Ios UIButton可在屏幕上设置动画,但停止工作-SWIFT,ios,swift,uibutton,uistackview,stackview,Ios,Swift,Uibutton,Uistackview,Stackview,我对iOS开发比较陌生,目前正在为我的应用程序开发注册/登录屏幕。我希望其中一个按钮,一旦点击,它的动画,改变其功能,并以这种方式,有一个按钮'获得一个新的角色'一旦点击。问题是,一旦我向上设置了按钮的动画(通过transfrom),它就不再是可点击的了。一旦我将其动画设置回其原始位置,它就可以再次单击 似乎按钮是可见的,但不可点击 (我说的按钮是:loginButton 这是我的密码: class FirstViewController: UIViewController { let

我对iOS开发比较陌生,目前正在为我的应用程序开发注册/登录屏幕。我希望其中一个按钮,一旦点击,它的动画,改变其功能,并以这种方式,有一个按钮'获得一个新的角色'一旦点击。问题是,一旦我向上设置了按钮的动画(通过transfrom),它就不再是可点击的了。一旦我将其动画设置回其原始位置,它就可以再次单击

似乎按钮是可见的,但不可点击

(我说的按钮是:
loginButton

这是我的密码:

class FirstViewController: UIViewController {
    let loginButton: UIButton = {

        let button = UIButton(type: .system)
        button.setTitle("I already have an account ;)", for: .normal)
        button.backgroundColor = UIColor.rgb(red: 241, green: 245, blue: 249)
        button.layer.cornerRadius = 5
        button.titleLabel?.font = UIFont(name: "AvenirNext-Medium", size: 17)
        button.tintColor = UIColor.rgb(red: 123, green: 123, blue: 123)
        button.addTarget(self, action: #selector(handleLoginshow), for: .touchUpInside)
        button.isEnabled = true

        return button

    }()



    @objc func handleLoginshow() {

        // Animations triggered by LOGIN BUTTON
        UIView.animate(withDuration: 0.6, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.4, options: .curveEaseOut, animations: {
            self.perspectiveImageContainerView.transform = CGAffineTransform(translationX: 0, y: -30)
            self.perspectiveImageContainerView.alpha = 0

            self.closeButton.alpha = 1
            self.closeButton.isEnabled = true

            self.signupButton.transform = CGAffineTransform(translationX: 0, y: -25)
            self.signupButton.alpha = 0

            self.introTextLabel.transform = CGAffineTransform(translationX: 0, y: -30)
            self.introTextLabel.alpha = 0

        })
        //


        // Animations triggered by LOGIN BUTTON
        UIView.animate(withDuration: 0.5, delay: 0.15, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.4, options: .curveEaseOut, animations: {

            self.loginButton.transform = CGAffineTransform(translationX: 0, y: -70)
            self.loginButton.setTitle("Login", for: .normal)
            self.loginButton.setTitleColor(UIColor.rgb(red: 256, green: 256, blue: 256), for: .normal)
            self.loginButton.backgroundColor = UIColor.rgb(red: 18, green: 211, blue: 99)


            self.view.backgroundColor = UIColor.rgb(red: 241, green: 245, blue: 249)
            self.logoContainerView.backgroundColor = UIColor.rgb(red: 241, green: 245, blue: 249)

            self.emailTextField.alpha = 1
            self.emailTextField.transform = CGAffineTransform(translationX: 0, y: 0)
            self.passwordTextField.alpha = 1
            self.passwordTextField.transform = CGAffineTransform(translationX: 0, y: 0)

        })

        self.loginButton.addTarget(self, action: #selector(handleLogin), for: .touchUpInside)

    }

    @objc func handleLogin() {
        guard let email = emailTextField.text else { return }
        guard let password = passwordTextField.text else { return }

        Auth.auth().signIn(withEmail: email, password: password, completion: { (user, err) in

            if let err = err {
                print("Failed to sign in with email:", err)
                return
            }

            print("Successfully logged back in with user:", user?.uid ?? "")

            guard let mainTabBarController = UIApplication.shared.keyWindow?.rootViewController as? MainTabBarController else { return }
            mainTabBarController.setupViewControllers()
            self.dismiss(animated: true, completion: nil)

        })
    }

    fileprivate func setupInputFields() {
        let stackView = UIStackView(arrangedSubviews: [signupButton, loginButton])

        stackView.axis = .vertical
        stackView.spacing = 10
        stackView.distribution = .fillEqually

        view.addSubview(stackView)
        stackView.anchor(top: introTextLabel.bottomAnchor, left: view.leftAnchor, bottom: view.bottomAnchor, right: view.rightAnchor, paddingTop: 78, paddingLeft: 30, paddingBottom: 0, paddingRight: 30, width: 0, height: 110)

    }
}

请编辑导致问题的代码段不要全部发布code@Sh_Khan,已编辑!在您制作动画后,您确定某个视图没有与您的登录按钮重叠吗?也许您有另一个视图位于该视图上方,其alpha值为0,它不会为您显示,但会停止触摸输入。@CvEijk-您需要提供代码来重现您的操作您的问题。请尝试将其缩小到所需的最小范围-例如,仅设置动画的按钮,包括如何将其添加到视图中。这样,其他人可以复制/粘贴您的代码并运行它以查看发生了什么。请参阅: