我有一个包含已解析 NSXML 对象的表格视图。
我想在此activityIndicator
中实施tableview
,这样当数据加载完成后,activityIndicator
会自动停止。
怎么做?
提前致谢
答案 0 :(得分:1)
看起来你不熟悉NSXmlParser
。
您应该在此方法中启动activity
:
– parserDidStartDocument:
然后,您可以在此委托方法停止后停止activity
:
– parserDidEndDocument:
有关NSXMLParser
委托的详细信息,请参阅此Apple doc。
答案 1 :(得分:1)
在代码中使用int totalRows
和Bool 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];