UISwitch 的奇怪行为
Posted
技术标签:
【中文标题】UISwitch 的奇怪行为【英文标题】:Weird behavior of the UISwitch 【发布时间】:2020-08-10 09:59:29 【问题描述】:我的 Switch 动画卡在打开和关闭之间。它发生在开关超出屏幕边界后(开关位于表格视图单元格内)。如果我不让单元格超出屏幕范围,我就不会遇到这个问题。我设置了断点来弄清楚发生了什么,并意识到这发生在我更改开关值的那一刻。下面的 GIF 是为了更好地理解我的意思。第一个显示了我想要修复的行为。第二个没问题。
[
【问题讨论】:
请分享您的tableview和switch代码 【参考方案1】:我设法自己解决了这个问题。我没有发布代码,因为代码太多,我可以在这里发布。但如果有人有同样的问题 - 这里是解决方案。
事实证明,当单元格被重复使用时(单元格离开屏幕),所有内容都不会从中删除。在它们再次出现在屏幕上后,我最终将多个开关堆叠在一起。我所做的只是在初始化新开关之前将 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)
])
【讨论】:
以上是关于UISwitch 的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章
如何使任意 UIAccessibilityElement 的行为类似于 VoiceOver 的 UISwitch?