我在自定义表格单元格中有一个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 :(得分:0)
初始化单元格时,您应该添加:
webViewVideo.delegate = self;
或者,您可以直接在故事板中进行操作。
答案 1 :(得分:0)
我建议在webViewDidFinishLoad:方法中检查活动指示器是否首先旋转。
if ([indicatorSpinner isSpinning]){
[indicatorSpinner stopAnimating];
}
答案 2 :(得分:0)