我目前正在从事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
。没问题。请提出解决方案
答案 0 :(得分:0)
您好,您的代码是完美的,没有问题,
请将sender.isEnabled
替换为sender.isUserInteractionEnabled = false
,我认为两者都使用相同的属性,
我正在测试我的虚拟项目中两个项目的工作原理相同,只需尝试一次@thankyou
答案 1 :(得分:0)
请检查您的代码,isEnabled
应该可以正常工作。尝试在没有任何业务逻辑的单独示例中进行操作。
或者共享完整的代码,否则我们可以通过阅读您的代码片段来猜测。
顺便说一句,有时清理项目对我有神奇的帮助。
答案 2 :(得分:0)
请创建按钮的出口,并使button.isEnable为false。应该可以。