如何在tableview的单元格内使用uiwebview并避免在重用单元格顶部加载页面[重复]
Posted
技术标签:
【中文标题】如何在tableview的单元格内使用uiwebview并避免在重用单元格顶部加载页面[重复]【英文标题】:How to use uiwebview inside a cell of a tableview and avoid load pages on top of reuses cell [duplicate] 【发布时间】: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 视图,这使得滚动真的很慢而且根本不流畅。
有什么解决办法吗? `
【问题讨论】:
【参考方案1】:你肯定可以使用 youtube ios 播放器库。
-
创建一个自定义单元格并在单元格中添加
UIView
。
将UIView
类更改为YTPlayerView
子类
为您的自定义单元子类创建 YTPlayerView
的出口
在prepareForReuse中,清除之前的视频:
- (void)prepareForReuse
[super prepareForReuse];
_youTubePlayer.hidden = YES;
[_youTubePlayer stopVideo];
[_youTubePlayer clearVideo];
在上面的 sn-p 中,_youTubePlayer
是YTPlayerView
的出口
您还可以为YTPlayerViewDelegate
设置代理,并根据视频状态更新您的单元格..
【讨论】:
这是我使用 YTPlayerView cloud.githubusercontent.com/assets/8028679/10536869/… cloud.githubusercontent.com/assets/8028679/10537232/… 时发生的情况@ 到底发生了什么?以上是关于如何在tableview的单元格内使用uiwebview并避免在重用单元格顶部加载页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章
IOS swift如何在tableView单元格内创建一条小水平线
在单元格内编辑textview时,将另一个单元格添加到tableview
当在同一个单元格内单击按钮时,如何在自定义表格视图单元格内隐藏/显示特定视图