2014-02-05 14 views
0

У меня есть uiwebview в пользовательской ячейке таблицы. Я пытаюсь отключить индикатор активности, когда загружается uiwebview. В настоящее время он просто появляется, но не исчезает.Скрыть индикатор активности при загрузке uiwebview

Я знаю, что мне нужно связать делегата, но оказалось немного более сложным, так как это пользовательская ячейка таблицы. Я связал делегата UIWebView.

Так videoCell.h мой UITableViewCell я есть:

@interface videoCell : UITableViewCell <UIWebViewDelegate> 

@property (weak, nonatomic) IBOutlet UIWebView *webViewVideo; 
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *indicatorSpinner; 

@end 

следуют следующие в файле videoCell.m.

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ [indicatorSpinner startAnimating]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ [indicatorSpinner stopAnimating]; 
    indicatorSpinner.hidden = TRUE; 
} 

В моем UITableViewController

if(indexPath.row == 0) { 
    videoCell *cell = nil; 
    cell = (videoCell *)[tableView dequeueReusableCellWithIdentifier:videoCellIdentfier]; 
    if(!cell) { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"videoViewCell" owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 
    } 

    UIWebView* webView = (UIWebView*)[cell viewWithTag:1001]; 

    //https://youtube.googleapis.com/v/6eK-W32IME0 

    NSString *html = @"\ 
    <html><head>\ 
    <style type=\"text/css\">\ 
    body {\ 
    background-color: transparent;\ 
    color: white;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0\">\ 
    <embed id=\"yt\" src=\"http://www.youtube.com/v/CAGBKxvBkxI?fs=1&hl=en_US&enablejsapi=1\" type=\"application/x-shockwave-flash\" \ 
    width=\"320\" height=\"200\"></embed>\ 
    </body></html>"; 

    [webView loadHTMLString:html baseURL:nil]; 
    webView.scrollView.scrollEnabled = NO; 
    webView.scrollView.bounces = NO; 
    return cell; 
+0

Если вы не изменили значение по умолчанию для 'hidesWhenStopped' в свойстве indicatorSpinner, вам не нужно вызывать этот' indicatorSpinner.hidden = TRUE; ' –

+0

@viperking, который не исправляет проблему; – memyselfandmyiphone

+0

Вы отлаживали его, если он идет в webViewDidFinishLoad? – csk

ответ

0

Когда вы инициализируете ячейку, которую необходимо добавить:

webViewVideo.delegate = self; 

В качестве альтернативы вы можете сделать это непосредственно в раскадровке.

0

Я бы предложил проверить, вращается ли индикатор активности в методе webViewDidFinishLoad:.

if ([indicatorSpinner isSpinning]){ 

      [indicatorSpinner stopAnimating]; 


    } 
0

вы можете сделать [indicatorSpinner stopAnimating]; [indicatorSpinner setHidden: true];

Смежные вопросы