1

我正在尝试创建一个UITableView,以便当用户触摸我的法线时,UIViewTableCell另一个UIViewTableCell从右侧以新的单元格格式滑入。这个新UIViewTableCell的不离开UITableView

UIViewTableCells 是 2 个不同的自定义单元格。

我想知道是否有一种方法可以将具有动画滑动效果的一个交换UITableViewCellX type另一个?UITableViewCellY type

我查看了以下代码,但我不明白我在哪里放置我的 Cell 信息。

[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:myIndexPaths
                 withRowAnimation:UITableViewCellRowAnimationRight];
[tableView endUpdates];
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:myNewIndexPaths
                 withRowAnimation:UITableViewCellRowAnimationLeft];
[tableView endUpdates];

任何有关如何执行此操作的指导都非常感谢。

PS:我不是在寻找回购。我想了解这是如何完成的。

4

1 回答 1

2

基本上,表格视图单元格动画的工作方式是更新数据源(通常是在向表格视图提供单元格时引用的数组),然后调用动画方法。当您插入一个单元格时,表格视图会调用numberOfRowsInSectioncellForRowAtIndexPath因此它们返回正确的值很重要。

但是,在这种情况下,单元格的数量保持不变,因此您不能使用插入和删除。但是,您可以使用单元重新加载。从理论上讲,每次didSelectRowAtIndexPath调用时,您都会添加到应该显示新类型单元格的点击索引路径列表中。或者,如果您只希望一次出现这些特殊单元格中的一个,则可以使用单个NSIndexPath变量。然后你会打电话

[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight]; //or left

然后,在 中cellForRowAtIndexPath,您将检查特定行是否需要不同类型的单元格,然后您将在那里返回该新类型。这样,您需要呈现新类型的单元格的代码与新单元格的初始化是隔离的。

希望这对你有用!

于 2013-07-22T15:18:52.923 回答