0

我想在我的UITableView.

所以我正在做的就是这样:

NSMutableArray *arrayOfCells = [[NSMutableArray alloc] init];
for(int i = 0 ; i < 4 ; i++)
{
    CustomCell *cell = [[CustomCell alloc] init:myText];
    [arrayOfCells addObject:cell];
}
[table insertRowsAtIndexPaths:arrayOfCells withRowAnimation:UITableViewRowAnimationTop];

但插入行返回此错误:

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[CustomCell compare:]: unrecognized selector sent to instance 0x1cdebfb0”

知道为什么吗?谢谢你的帮助。

4

3 回答 3

2

insertRowsAtIndexPaths将一个对象数组作为其参数,这些NSIndexPath对象表示新行应该在表中的位置。然后表格视图调用委托和数据源来获取要显示的新单元格和内容。

您不能直接传递要添加的新单元格...

于 2013-06-09T21:59:39.110 回答
2
NSMutableArray *arrayOfIndexPaths = [[NSMutableArray alloc] init];

for(int i = 0 ; i < 4 ; i++)
{
    NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:0];
    [arrayOfIndexPaths addObject:path];
}

[table insertRowsAtIndexPaths:arrayOfIndexPaths withRowAnimation:UITableViewRowAnimationTop];

这是你需要做的。

于 2013-06-09T22:04:06.183 回答
0

简而言之,您需要将新单元格添加到单元格数组中,并将它们插入到更新中。
像这样创建一个 indexPaths 数组:

NSMutableArray *indexPaths = [[NSMutableArray alloc]init];
for (int i = firstIndexPathValue; i < lastIndexPathValue; i++) [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];

然后..

[myTableView beginUpdates];
//here is where you need to add objects to your array, then..
[myTableView insertRowsAtIndexPaths:index withRowAnimation:chooseARowAnimation];
[myTableView endUpdates];
于 2015-09-10T21:42:02.870 回答