我收到一条错误,表示我删除行后需要更新UITableView中的行数。我意识到这是因为我没有更新UITableView中的行数,我只是不确定如何在下面的代码中进行此更改。
非常感谢任何帮助。
! - 代码
NSIndexPath[] rowsToReload = new NSIndexPath[] {
NSIndexPath.FromRowSection(1, 1)
};
dv.TableView.BeginUpdates ();
dv.TableView.DeleteRows(rowsToReload,UITableViewRowAnimation.Automatic);
dv.TableView.EndUpdates ();
! - 错误
名称:NSInternalInconsistencyException原因:无效更新:第1节中的行数无效。更新后现有部分中包含的行数(3)必须等于更新前该部分中包含的行数( 3)
答案 0 :(得分:1)
上面的代码没问题。但是,您需要在之后将其称为,您已从数据源中删除了相应的项目。
例如,如果要从List<string>
(myList)填充表视图,并且想要删除第一行:
myList.RemoveAt(0); // remove the item from the list first
NSIndexPath[] rowsToDelete = new NSIndexPath[] {
NSIndexPath.FromRowSection(0, 0)
};
dv.TableView.DeleteRows(rowsToDelete, UITableViewRowAnimation.Automatic);
无需在Begin / EndUpdates中包装DeleteRows调用,因为您只需要执行一个删除操作。当您有多个不同的动作(例如,DeleteRows + InsertRows)时,可以使用它,以便动画顺利执行。
答案 1 :(得分:0)
@Dimitris感谢您回答我的问题。我最终解决了这个问题:
在我的UITableView上调用reload方法
NSIndexPath[] rowsToReload = new NSIndexPath[] {
NSIndexPath.FromRowSection(1, 1)
};
dv.TableView.ReloadRows (rowsToReload,UITableViewRowAnimation.None);
在我的UITableViewCell GetCell方法
我删除了第一次加载表格时包含的标签,字段和按钮。由于我的应用程序中的此屏幕只能看到一次,当用户第一次加载它时。