我想将Section添加到UITableView
和Rows到这个新部分
但当我这样做时,应用程序就崩溃了。
如何在不使用UITableView
的情况下将数据添加到UITableView.ReloadData()
并重新加载数据。
以下是我使用它的方法。
private void AddToSection(UITableView tableView, List<TableItems> messages, bool reload = false)
{
foreach (var item in messages)
{
if (!_section.Contains(item.Section))
{
_sectionMessage.Add(new List<string>());
_section.Add(item.Section);
if (reload)
{
var index = NSIndexSet.FromIndex(_section.Count - 1);
tableView.InsertSections(index, UITableViewRowAnimation.None);
}
}
int section = _section.Count - 1;
_sectionMessage[section].Add(item.Message);
if (reload)
{
int row = _sectionMessage.LastOrDefault().Count-1;
var index = new NSIndexPath[] {NSIndexPath.FromRowSection(row, section) };
tableView.InsertRows(index, UITableViewRowAnimation.None);
}
}
}
答案 0 :(得分:0)
首先编辑: 您还必须更新您的dataSource。您不能只在不更新dataSource的情况下向tablView添加新的部分和单元格。
/// 你试过以下吗?
tableView.beginUpdates()
tableView.endUpdates()
通常当你执行reloadData()并且没有正确更新dataSource时,你会遇到像你这样的问题。