gpt4 book ai didi

swift - 如何为单个 UITableViewCell 启用动画编辑模式?

转载 作者:行者123 更新时间:2023-11-30 12:03:38 27 4
gpt4 key购买 nike

UITableView 处于编辑模式。每个单元格都有一个UISwitch。委托(delegate)方法 tableView(_ tableView:canEditRowAt:) 仅对于开关打开的单元格返回 true

当开关值更改为on时,单元格应变为可编辑,当其更改为off时,单元格应变为不可编辑。

我尝试通过设置 isEditing=false 来更改单元格的编辑模式。但除非我调用 tableView.reloadData() ,否则单元格的编辑模式不会改变。但是,当我在开关值更改后立即重新加载数据时,开关动画不可见。

在单元格上调用tableView.reloadRows也会破坏切换动画。

如何启用/禁用单个 UITableViewCell 进行编辑,同时保留单元格中的切换动画?

最佳答案

假设:您有 SwitchTableViewCell 和 ViewController 委托(delegate)给您的单元格,并处理开关值的更改。在委托(delegate)方法中,假设 didChangeSwitchValue(at indexPath: IndexPath, newValue: Bool) ,您需要更新模型,然后调用以下行来更新 tableView 布局,而不破坏切换动画。

假设编辑样式用于删除,以下行修复了动画:

self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)

请注意,我尝试过使用 UITableViewRowAnimation.nonetableView.reloadData() ,正如您所说,动画中断,但使用动画选项 UITableViewRowAnimation .automatic 看起来不错。如果您对其他编辑模式有任何问题,请更新您的问题。

关于swift - 如何为单个 UITableViewCell 启用动画编辑模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46913417/

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