在我的表格视图中,当您滚动浏览单元格时,它们会分别加载来自 Youtube/Vimeo 的视频截图/链接...
但是当我第一次开始滚动表格视图时,我注意到每个 webview 不断地重新加载自己(我的意思是什么?)首先我会一直滚动到表格视图的底部,让每个表格单元格加载 web 视图,因此当我向上滚动到顶部,我认为 webviews 不需要再次重新加载,但他们确实......
为了解决这个问题,我在下面做了一些事情,但我遇到了另一个问题。当你第一次打开这个场景时,表格视图会正常加载所有可见单元格的 webview,但是当你开始向下滚动到其他表格视图单元格时,我注意到它所做的只是获取我第一次打开场景时加载的最后一个 webview并将其放入我向下滚动时遇到的所有其他 webviews。
我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [[UITableViewCell alloc] init];
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSMutableString *VideoID;
VideoID = [NSMutableString stringWithFormat:@"9394596"];
if(indexPath.row == 19) {
VideoID = [NSMutableString stringWithFormat:@"9820827"];
NSLog(@"19");
}
NSString *htmlStringToLoad = [NSString stringWithFormat:@"http://player.vimeo.com/video/%@?title=0&byline=0&portrait=0\%%22%%20width=\%%22%0.0f\%%22%%20height=\%%22%0.0f\%%22%%20frameborder=\%%230\%%22", VideoID];
// Configure the cell...
UIWebView *thisWebView = (UIWebView*)[cell viewWithTag:10];
NSString *contentsOfWebView = [thisWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].innerHTML"];
UILabel *thisLabel = (UILabel*)[cell viewWithTag:20];
if([contentsOfWebView length] < 3) {
[thisWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:htmlStringToLoad]]];
NSLog(@"IF");
} else {
NSLog(@"ELSE");
}
thisLabel.text = @"Video Title";
cell.detailTextLabel.text = @"TEST";
return cell;
}
如何在表格视图中加载每个 webview,如果遇到已经加载的 webview,不要加载它们?
编辑:第 19 行应该加载不同的视频,但它没有