所以我想改变一个布尔值在我的项目中使用UISwitch。交换机位于我的单元格右侧,并通过Interface Builder添加了约束条件。UISwitch约束和动画中断tableview.reloadData()
我已经装配了开关来调用switchChanged
方法,该方法设置了bool值,然后重新加载tableView以反映更改后的值。
开关正常工作,设置切换时的布尔值。但是,当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()
该方法是在我的视图控制器实现。
这里是上面提到的约束:
你需要证明你已经添加的约束。另外,switchChanged()方法在哪里实现?在单元格或视图控制器中? – Abizern
'switchChanged()'发生在视图控制器 – SpacemanDeMars
我没有得到你的问题。 –