如何在tableview的单元格内使用uiwebview,并避免在重用单元格之上加载页面

时间:2015-10-16 15:17:49

标签: ios objective-c uitableview uiwebview

我有一个tableview,每个单元格都有一个webview。在每个webview上我从youtube上加载了一个不同的嵌入视频。

CardCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"CardCell"];
NSString *fullURL = [NSString stringWithFormat: @"https://youtube.com/embed/%@?",videoID];
NSURL *url = [NSURL URLWithString:fullURL];

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[cell.videoView loadRequest:requestObj];
cell.videoView.scrollView.scrollEnabled = NO;

我的问题是,每次我滚动表格时,由于重复使用单元格,在webview上它会显示上一个视频,一秒钟后会显示正确的视频。

我尝试使用此功能:https://github.com/youtube/youtube-ios-player-helper 但它每次创建一个不同的Web视图,并使滚动真的很慢而且根本不光滑。

任何解决方案? `

1 个答案:

答案 0 :(得分:0)

您一定可以使用youtube ios播放器库。

  1. 创建自定义单元格并在单元格中添加UIView
  2. UIView类更改为YTPlayerView子类
  3. 为您的自定义单元格子类
  4. 创建YTPlayerView的商店
  5. 在prepareForReuse中,清除上一个视频:

    - (void)prepareForReuse {
        [super prepareForReuse];
    
        _youTubePlayer.hidden = YES;
        [_youTubePlayer stopVideo];
        [_youTubePlayer clearVideo];
        }
    
  6. 在上面的代码段中,_youTubePlayerYTPlayerView

    的outLet

    您还可以为YTPlayerViewDelegate设置委托,并根据视频状态更新您的单元格。