我试过两个
使用iframe
let cell = tableView.cellForRowAtIndexPath(indexPath)
cell.textLabel.text = "Hello" // CRASH if the cell is not visible in the view
带有视频标记
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
cell.textLabel.text = "Hello" // Never get executed if cell is nil
}
答案 0 :(得分:1)
首先,iframe从未打算用于显示嵌入式媒体。这是 object 标记旨在代替的东西。来自MDN docs:
HTML内联框架元素(
<iframe>
)表示嵌套浏览 上下文,有效地将另一个HTML页面嵌入到当前 页。强>HTML嵌入式对象元素(
<object>
)代表外部 资源,可以视为图像,嵌套浏览上下文, 或要由插件处理的资源。
这两个元素都早于video
元素,这是您应该始终用于在网页中嵌入视频内容的内容。
其次,YouTube视频并不意味着直接从<video>
元素链接...他们为您提供的嵌入代码是一个iframe,无论如何都可以打开HTML5视频播放器(或者古董设备的Flash后备)。
判决:如果您尝试显示的视频不是或不能在YouTube上托管,请使用网页上的video
标记嵌入它,确保尽可能多的支持格式转换视频。在HTML5视频上有很多关于在线的文章,所以我不会在这里详细介绍这个过程。