在TableView中加载反馈

时间:2014-05-13 09:54:43

标签: ios objective-c uitableview

我将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顶部添加一个空白空间

2 个答案:

答案 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;
}

我不知道你的项目是什么样的,但我假设你在重新加载表之前正在对解析的文档做些什么。