我有一个UITableView从HTML中获取数据。抓取工作正常,我通常有大约20个单元格显示,从1,2,3,4,5到20。
然而,在获取之后,细胞仅显示所有细胞上第一个细胞中的内容。 (即1,1,1,1,1,1)如果我向下滚动,我会看到6,7,8,......,20。如果我再次向上滚动,我会看到桌子变成正常...
我正在测试代码,我在insertNewObject类中发现如果我插入0索引,那么一切都会正常。但是,如果我只是在最后一个索引处添加对象或插入对象,那就不行了。
这是我的insertNewObject类的代码:
- (void)insertNewObject:(id)sender {
if (!_objects) {
_objects = [[NSMutableArray alloc] init];
}
// Working code, but I want the order from the top 1, 2, 3, ..., 20 rather than
// 20, 19, 18, ..., 2, 1
// [_objects insertObject:sender atIndex:0];
// And the code below doesn't show up correctly...
// [_objects insertObject:sender atIndex:(_objects.count)];
// [_objects addObject:sender];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
这很奇怪,我认为它与绘图有关,因为UITableView显示一切都很好,如果我继续上下滚动并“清理”显示...但如果我做setDisplay,一切都没有发生......刷新表并不能解决问题......
有什么想法吗? 感谢
答案 0 :(得分:0)
在你的问题中没有足够的背景可以肯定地知道,但我想也许你在这里努力工作。您可以使用NSMutableArray
方法addObject:
将新对象追加到数据数组的末尾。完成后,您应该只需调用reloadData
,您的tableView将重绘为包含新数据项的单元格。
- (void)insertNewObject:(id)sender
{
if (!_objects) {
_objects = [[NSMutableArray alloc] init];
}
[_objects addObject:sender];
[self.tableView reloadData];
}