如何在出队时阻止“UITableViewCell”中的“UIWebView”重新加载


屏幕上

显示后重新加载网页视图的视频

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    if indexPath.row == 17 {
        let _cell = tableView.dequeueReusableCell(withIdentifier: "webCell") as! WebviewTableViewCell
        let webView = UIWebView()
        webView.frame = _cell.contentView.bounds
        webView.scalesPageToFit = true
        let webViewURL = "https://www.reddit.com/"
        var _request = URLRequest(url: URL(string: webViewURL)!)
        _request.cachePolicy = .returnCacheDataElseLoad
        webView.loadRequest(_request)
        _cell.contentView.addSubview(webView)
        return _cell
    }
    cell.textLabel?.text = "sample cell (indexPath.row + 1)"
    return cell
}

我正在使用上面的代码来提供 Web 视图的缓存副本。但是,每次具有 Web 视图的单元格不在屏幕外时,表视图都会重新加载 Web 视图内容。如何在 Web 视图中仅加载一次页面,而不是每次单元格离开屏幕时加载它?任何帮助将不胜感激并投赞成票。谢谢。

您的代码显示您根本没有使用dequeueReusableCell的缓存功能。您正在从缓存(队列)中获取单元格,然后向其添加新的 Web 视图。

解决方案是在WebviewTableViewCellinit/情节提要中创建Web视图。

试试吧

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
if indexPath.row == 17 {
    let _cell = tableView.dequeueReusableCell(withIdentifier: "webCell") as! WebviewTableViewCell
    If _cell.contentView.viewWithTag(100) == nil 
{
    let webView = UIWebView()
       webView.tag=100;
    webView.frame = _cell.contentView.bounds
    webView.scalesPageToFit = true
    let webViewURL = "https://www.reddit.com/"
    var _request = URLRequest(url: URL(string: webViewURL)!)
    _request.cachePolicy = .returnCacheDataElseLoad
    webView.loadRequest(_request)
    _cell.contentView.addSubview(webView)
}
    return cell;
}
cell.textLabel?.text = "sample cell (indexPath.row + 1)"
return cell

}

相关内容

  • 没有找到相关文章

最新更新