在iOS中的表视图上的活动指示器

时间:2014-02-03 07:09:28

标签: ios uitableview ios7 nsxmlparser

我有一个包含已解析 NSXML 对象的表格视图。

我想在此activityIndicator中实施tableview,这样当数据加载完成后,activityIndicator会自动停止。

怎么做?

提前致谢

3 个答案:

答案 0 :(得分:1)

看起来你不熟悉NSXmlParser

您应该在此方法中启动activity

– parserDidStartDocument:

然后,您可以在此委托方法停止后停止activity

– parserDidEndDocument:

有关NSXMLParser委托的详细信息,请参阅此Apple doc。

https://developer.apple.com/library/mac/documentation/cocoa/reference/NSXMLParserDelegate_Protocol/Reference/Reference.html

答案 1 :(得分:1)

在代码中使用int totalRowsBool showSpinner,当调用解析方法集showSpinner=YES & totalRows=1最初在表视图中显示微调器并重新加载表视图时,在加载数据集totalRows count之后设置showSpinner=NO,重新加载tableview

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
 return totalRows;
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
 NSString *identifier;
if(showSpinner)
{
 identifier=@"spinnerCell";
            UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier];
            if (cell==nil) {
                cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
                cell.selectionStyle=UITableViewCellSelectionStyleNone;
                UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
                cell.contentView.backgroundColor=[UIColor whiteColor];
                [cell.contentView addSubview:spinner];
                spinner.tag = 123;
                CGRect _frame = [spinner frame];
                _frame.origin.y = 10;
                _frame.origin.x= (cellwidth/2)-(_frame.size.width/2);
                spinner.frame = _frame;
                [spinner startAnimating];
            }

            UIActivityIndicatorView *spinner=(UIActivityIndicatorView*)[cell.contentView viewWithTag:123];
            [spinner startAnimating];

}
else
{
identifier=@"dataCell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier];
            if (cell==nil) {
                cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
//add your custom cell or data
}
}
return cell;
}

答案 2 :(得分:0)

如果要在单元格内显示活动视图,可能在标题旁边,可以使用类似

的内容
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[cell.imageView addSubview:activityView];
[activityView startAnimating];
相关问题