gpt4 book ai didi

ios - tableview.reloadData() 上的 UISwitch 约束和动画中断

转载 作者:行者123 更新时间:2023-11-28 08:29:33 24 4
gpt4 key购买 nike

所以我试图在我的项目中使用 UISwitch 更改 bool 值。开关位于我的单元格的右侧,并通过 Interface Builder 添加的约束保持在原位。

我已经安装了开关以调用 switchChanged 方法来设置 bool 值,然后重新加载 tableView 以反射(reflect)更改后的值。

开关工作正常,在切换时设置 bool 值。但是,当 switchChanged 方法调用 self.tableView.reloadData() 时,开关会重新定位在单元格的左上角,并且不再有动画效果,尽管它仍然功能正常。有些东西打破了开关,但作为一名 iOS 开发新手,我不确定如何开始进行故障排除。

相关代码如下:

cellSwitch.addTarget(self, action: #selector(self.switchChanged),
forControlEvents: UIControlEvents.TouchUpInside)

然后:

func switchChanged(sender: UISwitch) -> Void {
print("Switch changed to \(sender.on).")

if sender.on {
self.acknowledged = "confirmed"
} else {
self.acknowledged = "conflicted"
}
tableView.reloadData()
}

tableView.reloadData() 行以某种方式破坏了开关。除了开关位置和动画,其他一切都有效。感谢您的帮助!

编辑:

switchChanged() 方法在我的 View Controller 中实现。

这里是上面提到的限制条件:

These

最佳答案

好的!我完全不知道这里发生了什么,但我想出了如何将开关保持在原位。

我没有创建附件 View ,而是将目标直接添加到开关,一切都按预期进行。这是更新后的代码:

customCell.acknowledgedSwitch.addTarget(self, 
action: #selector(self.switchChanged),
forControlEvents: UIControlEvents.TouchUpInside)

关于ios - tableview.reloadData() 上的 UISwitch 约束和动画中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com