Dan*_*hen 5 cocoa-touch uitableview reloaddata ios
这是我的重装功能
- (void) reloadTable:(id)sender
{
NSLog(@"Reload Table");
NSLog(@"%@",[appDelegate queryList]);
[self.driverTable reloadData];
[self.driverTable setNeedsLayout];
[self.driverTable setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
这是我从webservice接收数据后调用它的地方
if( [elementName isEqualToString:@"Response"]) {
Response = NO;
LookupView *lookupView = [[LookupView alloc] initWithNibName:@"LookupView" bundle:nil];
[lookupView reloadTable:self];
}
Run Code Online (Sandbox Code Playgroud)
我现在遇到的问题是在按下查找按钮并接收数据后进行搜索.该表不会刷新新数据.如果我再次按下查找按钮再次调用相同的功能,表格将重新加载.现在我知道数据存在,因为我在调用表重新加载之前打印出数组.
有什么想法吗?
我遇到了同样的问题.根据Apple的文档,不应在插入或删除行的方法中调用reloadData.我使用的一种解决方法是将调用延迟到reloadData,以便在更新表之后不会立即调用.试试这个:
[self performSelector:@selector(delayedReloadData) withObject:nil afterDelay:0.5];
Run Code Online (Sandbox Code Playgroud)
在适当的地方使用delayReloadData的以下实现
-(void)delayedReloadData{
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
我从这种方法中看到的负面影响是,如果表格行可见,则在显示其内容之前会有短暂的延迟.