我目前正在进行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。没有发现问题。请想出一个解决办法

最佳答案

嗨你的代码很完美没问题,
请将sender.isEnabled替换为sender.isUserInteractionEnabled = false我认为两者都使用相同的属性,
我在我的虚拟项目中进行测试,两个项目都在工作,只需尝试一次“谢谢”

关于ios - UIButton的isEnabled功能不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58132240/

10-12 06:19