2014-02-03 2 views
-1

У меня есть табличный вид, содержащий проанализированный NSXML объектов.Индикатор активности в виде таблицы в iOS

Я хочу реализовать activityIndicator в этом tableview, так что, когда загрузка данных завершена, activityIndicator останавливается автоматически.

Как это сделать?

Заранее спасибо

+0

Вы пробовали что-нибудь? У вас есть трудности с какой-либо конкретной частью? Как бы то ни было, это довольно широкий вопрос. – Abizern

ответ

1

выглядит, как вы не знакомы с NSXmlParser.

Вы должны начать activity в этом методе:

– parserDidStartDocument: 

Затем вы можете остановить activity после pasring остановки в этом методе делегата:

– parserDidEndDocument: 

Вы можете обратиться к этому яблочному документу для получения дополнительной информации около NSXMLParser делегат.

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

+1

Я был судим, что way.it не работал –

+0

Под редакцией '' parserDidEndDocument' метод вызывает? –

0

Если вы хотите, чтобы показать вид активности внутри клетки, может быть, рядом с названием, вы могли бы использовать что-то подобное,

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

Использование int totalRows и Bool showSpinner в коде, когда вызов метода синтаксического анализа set showSpinner=YES & totalRows=1 изначально показывают прядильщик в виде стола и перезагрузки таблицы, после загрузки набора данных totalRows count и установить showSpinner=NO, перезагрузить табличный вид

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

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
NSString *identifier; 
if(showSpinner) 
{ 
[email protected]"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 
{ 
[email protected]"dataCell"; 
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier]; 
      if (cell==nil) { 
       cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; 
//add your custom cell or data 
} 
} 
return cell; 
} 
Смежные вопросы