我有可扩展的表格视图单元格,除animation外,所有单元格都正常工作。我有一个带有UISwitch的单元格,当我点击它时,其他单元格出现,但有一些视图移动,当我点击UISwitch时隐藏这些单元格也是如此。
我使用的是insetGroup表格视图,这些移动使视图变成方形而不是圆形。
我想保持动画,我尝试了reloadSections(IndexSet(integer: 0), with: .fade)
似乎是一个解决方案,但它也重新加载我的头部,但我不想这样。
我的单元格行函数:
internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "RemindersCell", for: indexPath) as! RemindersCell
cell.switchReminder.isOn = remindersAllowed ? true : false
cell.switchReminder.addTarget(self, action: #selector(switchTapped(sender:)), for: .touchUpInside)
return cell
}
我的节中行数函数:
internal func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return remindersAllowed ? 5 : 1
}
我的UISwitch功能:
@objc private func switchTapped(sender: UISwitch) {
if !remindersAllowed {
// Add
remindersAllowed = true
} else {
// Delete
remindersAllowed = false
}
tableView.beginUpdates()
tableView.reloadSections(IndexSet(integer: 0), with: .none)
tableView.endUpdates()
}
默认remindersAllowed
是真的,当我切换它变成假的,隐藏单元格。我真的不明白是什么问题,任何帮助将不胜感激!
当我隐藏单元格时,gif显示了这个错误。
2条答案
按热度按时间mv1qrgav1#
你可以使用激活单元格作为表格视图头
vvppvyoh2#
您可以尝试使用以下代码删除系统重载部分动画并使用
fade
动画重载部分: