objective c - 在tableview单元格上解析xml时显示活动指示器

时间:2013-12-03 06:30:27

标签: ios objective-c xml-parsing uiactivityindicatorview

我是iOS编程的初学者。我正在创建一个tableview,在单击每个单元格时,将解析不同的xml。我希望在xml解析时显示活动指示符,并在解析完成时停止该指示符。我的代码是,

//活动指标     //在viewDidLoad中,

    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    activityIndicator.frame = CGRectMake(0.0, 0.0, 20.0, 20.0);
    activityIndicator.backgroundColor=[UIColor colorWithRed:0/255.0f green:0/255.0f blue:0/255.0f alpha:0.5];
    activityIndicator.center=self.view.center;
    [activityIndicator startAnimating];
    [self.view addSubview:activityIndicator];

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell = [tableView cellForRowAtIndexPath:indexPath];
    if(cell.accessoryView==nil)
    {
        NSLog(@"index path is %i",indexPath.row+1);
        cell.accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell_selected.png"]];
        [myObj1 changecheckedvalue:1 forindex:[[tempArr objectAtIndex:indexPath.row]mainID]];

        if (indexPath.row==0)
        {
            flagToCheck=1;
            xmlName=@"Pournima";
            [parseArray removeAllObjects];
            [self xmlParsing];
        }
   }
}

如何实现?请帮忙。

2 个答案:

答案 0 :(得分:2)

您可以使用MBProgressHUD显示位于当前视图顶部的活动视图。该库非常易于使用和实现。您只需导入MBProgressHUD.h,然后调用此方法:

[MBProgressHUD showHUDAddedTo:self.view animated:YES];

或者如果你想在单元格内显示活动视图,也许在标题旁边,你可以使用类似的东西,

UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[cell.imageView addSubview:activityView];
[activityView startAnimating];

完成后,您将从超级视图中删除activityView。

答案 1 :(得分:1)

尝试使用这个:https://github.com/jdg/MBProgressHUD 它具有更好的外观和感觉。

在调用“didSelectRowAtIndexPath”中的解析方法之前启动活动指示符,并在方法结束时将其停止进行解析。