#ios #uitableview #uikit #wkwebview
Вопрос:
У меня есть a UITableViewCell
, который содержит a WKWebView
(моя цель-отобразить видео на YouTube из ячейки).
Вот что я попробовал:
import UIKit; import WebKit
class ViewController: UIViewController {
var displayCell = false {
didSet { updateView() }
}
@IBOutlet weak var tableView: UITableView! {
didSet { tableView.register(UINib(nibName: "VideoCell", bundle: .main),
forCellReuseIdentifier: "VideoCell") }
}
@IBAction func tapped() {
displayCell.toggle()
updateView()
}
private func updateView() {
tableView.reloadData()
}
}
extension ViewController: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "VideoCell", for: indexPath) as! VideoCell
if let url = URL(string: "https://www.youtube.com/embed/qxWwEPeUuAg") {
cell.wkWebView.load(URLRequest(url: url))
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
200
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
displayCell ? 1 : 0
}
}
final class VideoCell: UITableViewCell {
@IBOutlet weak var wkWebView: WKWebView!
}
Нажатие на кнопку либо скрывает, либо показывает первую ячейку. Я понял, что задержка возникает при отображении видеосети, но только в первый раз. Я попытался даже не загружать URL-адрес, и задержка все равно возникает. Поэтому я предполагаю, что что-то не так с WKWebView
тем, когда приложение сначала кэширует ячейку, этого больше не происходит, когда ячейка удаляется из очереди. Но я не могу найти, что именно.
Не могли бы вы мне помочь? Большое спасибо.