微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UITableViewCell 中的 WKWebView 需要一些时间来加载仅第一个单元格加载

如何解决UITableViewCell 中的 WKWebView 需要一些时间来加载仅第一个单元格加载

我有一个包含 UITableViewCellWKWebView(我的目标是显示单元格中的 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 有问题,当单元格出列时不会再发生这种情况。但我找不到什么。

你能帮我吗?非常感谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。