美文网首页iOS-swiftHTML交互iOS精选
Webview下方紧跟评论(webview 设置为 tablev

Webview下方紧跟评论(webview 设置为 tablev

作者: Eric__li | 来源:发表于2017-08-31 18:32 被阅读538次

    需求: 内容详情需要用webview 来呈现,webview内容滑动到底部后下方要紧跟着当前文章的评论
    评论列表为非html,需要用 原生空间

    尝试: 查询并使用了各种方案, 每次进入详情获取到的 webview 高度都不相同, 故无法使用此种方案

    另辟蹊径: UITableview 嵌套 Webview 来实现
    1:Webview的tableheader设置与屏幕展现高度相同;
    2: Webview 设置为 tableview 的 tableHeader
    3: 设置 webV.scrollView.delegate = self
    设置 webV.scrollView.bounces = false
    同时设置 tableview.bounces = false
    4: 在代理方法中设置

    话不多说上效果 图图图图图图图图


    webview.gif
    为了更好的效果, 在 scrollview 停止滚动  及 开始拖动中 设置 webview.scrollview.isScrollEnabled 状态
        func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
            if tv.contentOffset.y == 0 {
                webV.scrollView.isScrollEnabled = true
            } else {
                webV.scrollView.isScrollEnabled = false
            }
        }
        
        func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
            if tv.contentOffset.y == 0 {
                webV.scrollView.isScrollEnabled = true
            } else {
                webV.scrollView.isScrollEnabled = false
            }
        }
    
    

    完整代码完整代码完整代码完整代码完整代码完整代码完整代码

    
    //
    //  ViewController.swift
    //  webviewDemo
    //
    //  Created by 李浩 on 2017/8/31.
    //  Copyright © 2017年 李浩. All rights reserved.
    //
    
    import UIKit
    import WebKit
    
    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
        
        var tv: UITableView!
        
        var webV: WKWebView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            configView()
        }
        
        func configView() {
            tv = UITableView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height), style: .grouped)
            tv.backgroundColor = UIColor.yellow
            tv.delegate = self
            tv.dataSource = self
            tv.bounces = false
            view.addSubview(tv)
            
            webV = WKWebView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height))
            webV.scrollView.delegate = self
            webV.scrollView.bounces = false
            webV.load(URLRequest(url: URL(string: "http://app.digitaling.com/articles/39581.html")!))
            tv.tableHeaderView = webV
        }
        
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 100
        }
        
        func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
            return 50
        }
        
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
            if cell == nil {
                cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
            }
            
            cell?.textLabel?.text = "评论-" + String(indexPath.row + 1)
            return cell!
        }
        
        func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
            print("-------")
            if tv.contentOffset.y == 0 {
                webV.scrollView.isScrollEnabled = true
            } else {
                webV.scrollView.isScrollEnabled = false
            }
        }
        
        func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
            if tv.contentOffset.y == 0 {
                webV.scrollView.isScrollEnabled = true
            } else {
                webV.scrollView.isScrollEnabled = false
            }
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }
    
    
    
    

    相关文章

      网友评论

      本文标题:Webview下方紧跟评论(webview 设置为 tablev

      本文链接:https://www.haomeiwen.com/subject/lsqcjxtx.html