0

所以昨晚我偶然发现了 iOS SDK 的一个相当不方便的“功能”,我想与你们分享我的发现和解决方案。还要获得输入,是否有更好的解决方案。

设想

我有一个表格视图,有两个部分,一个是最喜欢的项目,另一个是所有其他项目。点击表格视图中的一行将切换该项目是否被标记为收藏;在最喜欢的项目部分中点击一行,会将其从收藏夹中删除,而在所有其他项目部分中点击一行会将这个项目添加到收藏夹中。

当收藏的状态被切换时,我moveRowAtIndexPath:toIndexPath:会做一个漂亮的小动画并将行从收藏部分移动到所有其他部分。

问题

因此,问题出现了,因为不仅用户应该能够切换收藏状态,而且收藏部分中的所有项目都应该是可重新排列的。因此,我想在最喜欢的项目部分的每一行中显示一个重新排列控件。

但是,调用时不会重绘单元格,moveRowAtIndexPath:toIndexPath:并且 fromIndexPath 和 toIndexPath 都在可见区域中。这意味着在收藏项部分添加新行时不会显示重新排列控件。

4

1 回答 1

0

解决方案

在逐页查看文档中的页面后,在 StackOverflow 上进行线程并尝试各种东西后,我终于找到了解决方案。

调用后,我还立即moveRowAtIndexPath:toIndexPath:调用以下几行:

[cell setEditing:NO]
[cell setEditing:YES]

这将导致一个单元格了解它对重新排列的限制已更改,从而适当地显示/隐藏重新排列控件。

我发现这个解决方案非常老套,所以我很高兴听到更好的解决方案。但至少,现在有一个解决方案,供其他人享受。

于 2012-08-14T11:14:58.997 回答