gpt4 book ai didi

ios - UITableView 多个 insertSections 到同一个索引

转载 作者:搜寻专家 更新时间:2023-11-01 07:26:59 26 4
gpt4 key购买 nike

我有一个要在 UITableView 中显示的数据集。我想将所有新数据集作为第 0 节插入。通常,我会得到很多集,然后我想一次将它们推到最上面。这看起来像

tableView.beginUpdates()
repeat {
data.append(dataProvider.nextDataSet())
tableView.insertSections(NSIndexSet(index:0), withRowAnimation: .Automatic)
} while dataProvider.hasMoreData
tableView.endUpdates()

虽然我的 data 数组与我想要的完全一样,但我的应用程序崩溃时显示如下内容:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:无效的部分数。更新后 TableView 中包含的节数 (5) 必须等于更新前 TableView 中包含的节数 (0),加上或减去插入或删除的节数 (2 插入,0删除)。

我做了a little sample project on GitHub通过做重现这个问题

numSections += 1
tableView.insertSections(NSIndexSet(index:0), withRowAnimation: .Automatic)

五次 ( link ),其中 numSections 是节数,每个节的行数始终为三。它再次表示我只插入了 2 个部分,而实际上我插入了 5 个部分。

我在这里误解了什么?为什么 tableView 认为我只给了它 2 个新部分?当然,如果我只给它 2 个部分,它认为我只给了它 1 个。:-I

最佳答案

就显示的数据顺序而言,您插入的部分索引无关紧要,这由您的数据数组控制。您应该在不同的索引处插入节,因此使用 numSections 变量来控制它。

我希望如果您将开始和结束更新移动到循环中,它也会起作用。问题是您不知道 TableView 在内部是如何工作的,据我所知没有记录您看到的问题,但是在与您的基础数据不匹配的索引处插入部分是不合逻辑的。

关于ios - UITableView 多个 insertSections 到同一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35403808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com