首页 > 解决方案 > UIButton 的 isEnabled 功能不起作用

问题描述

我目前正在做这个ios项目。

我的问题isEnabled功能不起作用。将值设置为True成功,但更改为False不更改。

我错过了什么?

我的代码使用 Swift5

    @IBAction func nextScreen(_ sender: UIButton) {
        if self.nickField.text!.count > 12 {
            callAlert("long nick")
        } else {
    let url: URL = URL(string: globalUrl.apiAddress)!

            var dict = [String: String]()
            dict["nickname"] = self.nickField.text!
            sender.isEnabled = true
            do {
                try globalUrl.post(url: url, dict, encoding: .utf8, completionHandler: { data, response, error in
                    guard error == nil && data != nil else {
                        if let err = error {
                            print(err.localizedDescription)
                        }
                        return
                    }

                    do {
                        let json = try JSONSerialization.jsonObject(with: data!, options: [])
                        Log.Debug(json)
                        guard let jsonArray = json as? [String: Any] else {
                            return
                        }

                        if jsonArray["result"] == "Sucess" {
                            Log.Debug("Success")
                            DispatchQueue.main.async {
                                globalnickname = self.nickField.text!
                                sender.isEnabled = false
                                self.performSegue(withIdentifier: "go", sender: self)
                            }
                        } else {
                            DispatchQueue.main.async {
                                Toast(text:"error").show()
                                sender.isEnabled = false
                            }
                        }
                    } catch {
                        Log.Error(error)
                    }
                })
            } catch {
                Log.Error(error)
            }

        }

正如您从我的代码中看到的那样,该函数更改true为执行时和False完成时。但它不会更改为False. 没有发现问题。请提出解决方案

标签: iosswiftuibutton

解决方案


嗨,您的代码很完美,没有问题,

请替换sender.isEnabledsender.isUserInteractionEnabled = false 我认为两者都使用相同的属性,

我正在我的虚拟项目中进行测试,两者都工作相同,只需尝试一次@thankyou


推荐阅读