ios – StackView isHidden属性未按预期更新

ios – StackView isHidden属性未按预期更新,第1张

概述我正在尝试更新UIStackView以便显示一个字段,如果UITextField的值等于“Other”.这是我的代码: @IBOutlet var stackView: UIStackView!func updateView() { print("UPDATING") UIView.animate(withDuration: 0.25, animations: { () -> V 我正在尝试更新UIStackVIEw以便显示一个字段,如果UITextFIEld的值等于“Other”.这是我的代码:
@IBOutlet var stackVIEw: UIStackVIEw!func updateVIEw() {    print("UPDATING")    UIVIEw.animate(withDuration: 0.25,animations: { () -> VoID in         if(self.myTextFIEld.text! == "Other") {              print("SHOWING")              self.stackVIEw.arrangedSubvIEws[3].isHIDden = false         } else {              print("HIDING")              self.stackVIEw.arrangedSubvIEws[3].isHIDden = true         }         print("Is hIDden: \(self.stackVIEw.arrangedSubvIEws[3].isHIDden )")    })

示例输出如下所示:

> UPDATING> HIDING> Is hIDden: true> UPDATING> SHOWING> Is hIDden: true

如您所见,isHIDden属性报告为true,无论上面的代码将其设置为什么.我无法弄清楚为什么会这样,但也许这里有人可以吗?有没有明显的东西需要检查? isHIDden有什么理由无法更新吗? (注意输出中没有出现错误).

解决方法 用户界面上的更新必须始终在主线程(THE LAW)上完成.

因此,在主要的thead上包装UI更新:

@IBOutlet var stackVIEw: UIStackVIEw!func updateVIEw() {    print("UPDATING")    UIVIEw.animate(withDuration: 0.25,animations: { () -> VoID in        dispatchQueue.main.async {  // UI updates on the main thread            if(self.myTextFIEld.text! == "Other") {                print("SHOWING")                self.stackVIEw.arrangedSubvIEws[3].isHIDden = false             } else {                print("HIDING")                self.stackVIEw.arrangedSubvIEws[3].isHIDden = true             }             print("Is hIDden: \(self.stackVIEw.arrangedSubvIEws[3].isHIDden )")        }    })
总结

以上是内存溢出为你收集整理的ios – StackView isHidden属性未按预期更新全部内容,希望文章能够帮你解决ios – StackView isHidden属性未按预期更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存