在表更新之前,我的表数据源只有一个部分包含一行:
更新后,数据源返回另外两个部分,每个部分只有一行:
我使用以下代码为表更新设置动画:
// update the table data source, without reloading the table UpdateTable(); TableView.BeginUpdates(); // insert sections 1 and 2 TableView.InsertSections(NSIndexSet.FromNSRange(new NSRange(1, 2)), UITableViewRowAnimation.Fade); // insert two new rows, one for each new section (rows [1,0] and [2,0]) TableView.InsertRows(new NSIndexPath[] { NSIndexPath.FromRowSection(0, 1), NSIndexPath.FromRowSection(0, 2) }, UITableViewRowAnimation.Fade); TableView.EndUpdates();
但是,只有第1节及其行是动画的。第2节(带行[2,0])立即出现,不会移动/淡出一点。我还检查了“慢动画”切换。
此代码有什么问题?
编辑:我忘了提及,如果我省略InsertRows
电话,问题也存在,根据Sam的回答,这是不必要的。
答案 0 :(得分:2)
找出原因:每次调用UITableViewSource
时,我都在创建一个新的UpdateTable()
实例。除了动画更改表格节和行的动画外,一切都很好。
当我更改代码以重用UITableViewSource
实例时,一切都按预期工作。
答案 1 :(得分:1)
插入部分时,无需为各个动画设置动画。只需调用插入部分代码。此外,类似于删除部分时,您不需要删除其中的行。