加载uiwebview时隐藏活动指示器

时间:2014-02-05 14:45:47

标签: ios 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;

3 个答案:

答案 0 :(得分:0)

初始化单元格时,您应该添加:

webViewVideo.delegate = self;

或者,您可以直接在故事板中进行操作。

答案 1 :(得分:0)

我建议在webViewDidFinishLoad:方法中检查活动指示器是否首先旋转。

if ([indicatorSpinner isSpinning]){

          [indicatorSpinner stopAnimating];


    }

答案 2 :(得分:0)

你可以做 [indicatorSpinner stopAnimating]; [indicatorSpinner setHidden:true];