我正在尝试创建一个UITableView
,以便当用户触摸我的常规UIViewTableCell
时,另一个UIViewTableCell
从右侧滑入新的单元格格式。这个新的UIViewTableCell
不会离开UITableView
。UIViewTableCell
是2个不同的自定义单元格。
我想知道是否有一种方法可以将具有UITableViewCell
的一个X type
交换为具有动画滑动效果的另一种UITableViewCell
的Y type
?
我看了下面的代码,但不知道将Cell信息放在哪里。
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:myIndexPaths
withRowAnimation:UITableViewCellRowAnimationRight];
[tableView endUpdates];
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:myNewIndexPaths
withRowAnimation:UITableViewCellRowAnimationLeft];
[tableView endUpdates];
任何有关如何执行此操作的指导都非常感谢。
PS:我不是在寻找回购协议。我想了解这是如何完成的。
最佳答案
基本上,表视图单元格动画的工作方式是更新数据源(通常是在向表视图提供单元格时引用的数组),然后调用动画方法。插入单元格时,表视图将调用numberOfRowsInSection
和cellForRowAtIndexPath
,因此,重要的是它们必须返回正确的值。
但是,在这种情况下,单元数保持不变,因此您不能使用插入和删除。但是,您可以使用单元重新加载。从理论上讲,每次调用didSelectRowAtIndexPath
时,您都将添加一个分接索引路径的列表,该列表应显示新类型的单元格。另外,如果您一次只希望显示这些特殊单元之一,则可以使用一个NSIndexPath
变量。那你会打电话
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight]; //or left
然后,在
cellForRowAtIndexPath
中,您将检查特定行是否需要其他类型的单元格,然后在该行中返回该新类型。这样,您需要呈现新型单元格的代码就不会与新单元格的初始化隔离。希望这对您有用!
关于ios - 如何在UIViewTableCell中制作幻灯片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17790905/