2011-08-21 56 views
3

我允许在tableView行上滑动以在'normal'(即不是'editing')模式下调出Delete按钮。但是在某些情况下,例如当用户按下UIToolbar中的按钮时,我想恢复正常状态,即删除删除确认。我该如何清除UITableViewCell上的删除确认状态

showingDeleteConfirmation是只读属性,所以没有setShowingDeleteConfirmation: NO选项。我在这SO question建议的解决方法没有运气。在reloadData调用中,删除确认状态是稳定的。

有没有人知道如何强制该细胞脱离显示删除确认的状态?

回答

5

你有没有尝试使用:

[myTableView setEditing:FALSE animated:TRUE]; 
+0

This Works。谢谢。 – Obliquely

+0

它不适用于我的情况。我尝试覆盖状态准备重用方法。因为从表中删除单元格后,仍然会在返回时使用showsDeleteConfirmation = YES。 –

+1

有趣 - 这是有效的,但只有当你调用setEditing版本:with animated :. –

2

如果你写:

[myTableView setEditing:FALSE animated:FALSE]; 
[myTableView setEditing:TRUE animated:FALSE]; 

然后删除确认按钮消失,左侧的删除控制回到 其初始状态,并表保持编辑模式。

+0

这有助于修复SWTableViewCell中的错误,在编辑模式下,您无法按下具有showsDeleteConfirmation == YES的单元格。我听着tableView:didSelectRow ...:做到这一点,令人惊讶地将单元格恢复到原始位置。 –

1

或者与细胞indexPath,你可以(使感觉与正确的动画就像它推动删除按钮远)刚刚重新加载其内容

tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Right) 
+1

然后其他人提出了相当好的建议 – achi

0

在斯威夫特3,你可以做

tableView.reloadRows(at: [indexPath], with: .right)