我正在尝试创建一个UITableView,以便当用户触摸我的常规UIViewTableCell时,另一个UIViewTableCell从右侧滑入新的单元格格式。这个新的UIViewTableCell不会离开UITableView
UIViewTableCell是2个不同的自定义单元格。

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

我看了下面的代码,但不知道将Cell信息放在哪里。

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

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

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

最佳答案

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

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

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

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

希望这对您有用!

关于ios - 如何在UIViewTableCell中制作幻灯片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17790905/

10-11 12:13