【问题标题】:Help to insert a new section in a TableView帮助在 TableView 中插入新部分
【发布时间】:2010-10-16 09:49:51
【问题描述】:

每个人都在写关于删除部分的文章。好吧,我似乎无法添加一个。

目前,我正在尝试这样(失败并出现 NSInternalInconsistencyException):

UITableView *tv = (UITableView *) self.tableView;

if ([tv numberOfSections] == 1)
{
     [tv beginUpdates];
     [tv insertSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationTop];

     NSLog(@"Inserted.. Brace for impact.");
     [tv endUpdates];
}

NSLog(@"Section count after update: %d", [tv numberOfSections]); // Never reached

如果我是正确的,插入索引为 0 的部分应该将其放在顶部,将所有其他部分向下碰撞,对吗?好吧,如果我在 insertSections 之后立即写出 numberOfSections,则节数似乎没有变化。

有什么想法吗?

约翰

【问题讨论】:

    标签: iphone ios cocoa-touch uitableview insert


    【解决方案1】:

    是的,谢谢你们俩。

    经过一番折腾,我终于设法让它工作了。这是您的两个建议的结合。从未插入新数据,而且我不必增加插入的第一项的行数,而只需增加第二项。

    【讨论】:

      【解决方案2】:

      您是否也更新了数据源?您不能只更新表视图而不更新基础数据。

      【讨论】:

      • 是的..嗯。是的,我愿意,仍然是同样的例外。还是谢谢。
      【解决方案3】:

      您需要更新UITableViewDataSource 类的numberOfSectionsInTableView 消息。

      【讨论】:

      • 嗯,我做一个[item count],看看有没有增加section数的原因,如果增加了item,它返回2,否则返回1。或者你的意思是需要主动消息 numberOfSectionsInTableView?
      • 没有。我并不是说主动向 numberOfSectionsInTableView 发送消息。我的意思是您显然已经在做的事情:返回有关该消息实现的正确数量的部分。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      相关资源
      最近更新 更多