我将RSS提要加载到TableView中。在加载之前,它会显示一个空的tableview。
我可以让活动指示器显示,直到它被加载?
当前代码如下所示:
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyleGray)];
[self.view addSubview:self.activityIndicator];
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
[view addSubview:self.activityIndicator];
self.tableView.tableHeaderView = view;
dispatch_sync(dispatch_get_main_queue(), ^
{
[self.tableView reloadData];
//Remove load feedback
});
}
这段代码没有显示任何我不知道为什么我希望在顶部有一个加载动画,而是在tableview顶部添加一个空白空间
答案 0 :(得分:0)
为此,只需将MBProgressHUD.h和MBProgressHUD.m添加到您的项目中。现在要显示一下indecator,只需写:
[MBProgressHUD showHUDAddedTo:self.view.window animated:YES];
并隐藏写:
[MBProgressHUD hideAllHUDsForView:self.view.window animated:YES];
您可以从here
获取课程答案 1 :(得分:0)
你提出的代码让我感到困惑。我认为你应该做的是在parserDidStartDocument
方法中显示活动指标,并在parserDidEndDocument
中将其删除。我建议创建另一个UIView
属性,将其命名为activityIndicatorView
,然后执行以下操作:
- (void)parserDidStartDocument:(NSXMLParser *)parser {
if (!self.activityIndicatorView) {
self.activityIndicatorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 60)];
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyleGray)];
self.activityIndicator.center = CGPointMake(self.activityIndicatorView.frame.size.width/2,self.activityIndicatorView.frame.size.height/2);
[self.activityIndicatorView addSubview:self.activityIndicator];
}
self.tableView.tableHeaderView = self.activityIndicatorView;
[self.activityIndicator startAnimating];
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
[self.tableView reloadData];
[self.activityIndicator stopAnimating];
self.tableView.tableHeaderView = nil;
}
我不知道你的项目是什么样的,但我假设你在重新加载表之前正在对解析的文档做些什么。