Swift 女巫的怪异行为

Swift 女巫的怪异行为,swift,uitableview,uiswitch,Swift,Uitableview,Uiswitch,我的开关动画卡在打开和关闭之间。它发生在开关超出屏幕界限(开关位于表视图单元格内)之后。如果我不让手机离开屏幕,我就不会面对这个问题。我已经设置了断点来找出发生了什么,并意识到这是在我更改开关值时发生的。下面的GIF是为了更好地理解我的意思。第一个显示了我想要纠正的行为。第二个没问题 [ 我自己设法解决了这个问题。我没有发布代码,因为代码太多了,我可以把它全部发布在这里。但是如果有人有同样的问题,这里是解决方案 事实证明,当单元格被重用时(单元格离开屏幕),所有内容都不会从中删除。当它们再次出现

我的开关动画卡在打开和关闭之间。它发生在开关超出屏幕界限(开关位于表视图单元格内)之后。如果我不让手机离开屏幕,我就不会面对这个问题。我已经设置了断点来找出发生了什么,并意识到这是在我更改开关值时发生的。下面的GIF是为了更好地理解我的意思。第一个显示了我想要纠正的行为。第二个没问题

[


我自己设法解决了这个问题。我没有发布代码,因为代码太多了,我可以把它全部发布在这里。但是如果有人有同样的问题,这里是解决方案

事实证明,当单元格被重用时(单元格离开屏幕),所有内容都不会从中删除。当它们再次出现在屏幕上后,我发现多个开关堆叠在一起。我所做的只是在初始化新开关之前将switch.removeFromSuperview()添加到我的cell.set方法中

 func setSwitch() {
    switchControl?.removeFromSuperview()
    lockedPic.removeFromSuperview()
    switchControl = CustomSwitch(number: self.tag)
    contentView.addSubview(switchControl!)
    
    NSLayoutConstraint.activate([
        switchControl!.leadingAnchor.constraint(equalTo: self.trailingAnchor, constant: -61),
        switchControl!.centerYAnchor.constraint(equalTo: self.centerYAnchor)
    ])
}

请共享tableview和交换机的代码