UIButton 的 isEnabled 功能不起作用
Posted
技术标签:
【中文标题】UIButton 的 isEnabled 功能不起作用【英文标题】:UIButton's isEnabled feature does not work 【发布时间】:2019-09-27 09:57:55 【问题描述】:我目前正在从事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 = false
行实际上已到达?
【参考方案1】:
您好,您的代码很完美,没有问题,
请将sender.isEnabled
替换为sender.isUserInteractionEnabled = false
我认为两者都使用相同的属性,
我正在我的虚拟项目中进行测试,两者都工作相同,只需尝试一次@thankyou
【讨论】:
【参考方案2】:请创建按钮的出口并使 button.isEnable 为 false。它应该可以正常工作。
【讨论】:
这是一个输出函数。通过滚动故事板上的按钮创建的功能。【参考方案3】:请检查您的代码,isEnabled
应该可以正常工作。尝试在没有任何业务逻辑的单独示例中执行此操作。
或者也许分享完整的代码,否则我们只能通过阅读你的 sn-p 来猜测。
顺便说一句,有时清理项目会非常有用..
【讨论】:
以上是关于UIButton 的 isEnabled 功能不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用imageView外观禁用UIButton而不将isEnabled设置为false
使带有 imageView 的 UIButton 看起来被禁用而不将 isEnabled 设置为 false
UIButton 在 collectionView 单元格中不起作用
WPF IsEnabled 和 IsHitTestVisible