作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试向 tableView 添加 10 行,而不是 reloadData 我在 for 循环中使用 insertRowsAtIndesPaths,但不是一次添加一行,而是在最后添加所有 10 行。这是我的代码...
if([[[[[notification userInfo] objectForKey:@"cityevent"]objectForKey:@"events"]objectForKey:@"event"] isKindOfClass:[NSArray class]])
{
[self.featuredEventTableView beginUpdates];
for(NSDictionary *tempDict in [[[[notification userInfo] objectForKey:@"cityevent"]objectForKey:@"events"]objectForKey:@"event"])
{
ESEvent *event=[[ESEvent alloc]init];
event.name=[tempDict objectForKey:@"name"];
if([[tempDict objectForKey:@"image"]isKindOfClass:[NSNull class]] || [tempDict objectForKey:@"image"] ==nil)
event.image=[UIImage imageNamed:@"category_default.png"];
else
{
event.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[tempDict objectForKey:@"image"]]]];
}
[events addObject:event];
NSIndexPath *ip=[NSIndexPath indexPathForRow:([events count]-1) inSection:0];
NSLog(@"row: %i section: %i",ip.row,ip.section);
[self.featuredEventTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:ip] withRowAnimation:UITableViewRowAnimationRight];
[self.featuredEventTableView endUpdates];
}
}
有什么建议吗?
最佳答案
将开始更新调用移到 insertRowsAtIndexPaths:
调用之前。看看是否有帮助。我很惊讶这完全有效,因为您多次调用结束更新但只开始一次。
实际上,这可能仍然会非常快,您甚至都不会注意到。查看 NSTimer
或 GCD 的 dispatch_after
以错开更新。
关于iphone - UITableView 一次添加带有动画的行,但延迟显着,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308271/
我是一名优秀的程序员,十分优秀!