【问题标题】:How to use uiwebview inside a cell of a tableview and avoid load pages on top of reuses cell [duplicate]如何在tableview的单元格内使用uiwebview并避免在重用单元格顶部加载页面[重复]
【发布时间】:2015-10-16 15:17:48
【问题描述】:

我有一个 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 视图,这使得滚动真的很慢而且根本不流畅。

有什么解决办法吗? `

【问题讨论】:

    标签: ios objective-c uitableview uiwebview


    【解决方案1】:

    你肯定可以使用 youtube ios 播放器库。

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

      - (void)prepareForReuse {
          [super prepareForReuse];
      
          _youTubePlayer.hidden = YES;
          [_youTubePlayer stopVideo];
          [_youTubePlayer clearVideo];
          }
      

    在上面的 sn-p 中,_youTubePlayerYTPlayerView 的出口

    您还可以为YTPlayerViewDelegate 设置代理,并根据视频状态更新您的单元格..

    【讨论】:

    猜你喜欢
    • 2012-07-12
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2012-10-16
    • 1970-01-01
    • 2021-07-30
    相关资源
    最近更新 更多