AirZilong 2015-06-06 07:33 采纳率: 0%
浏览 655

UIWebView添加导航控制器后,怎么设置才能让UIWebView从真正的(0.0)点开始?

self.edgesForExtendedLayout = UIRectEdgeNone;
self.navigationController.navigationBar.translucent = YES;
设置这两行代码也不行图片说明

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 23:12
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要使UIWebView从0.0点开始加载网页,你需要在加载完成后调用webViewDidFinishLoad方法。在这个方法中,你可以使用webView.scrollView.contentOffset.y来获取滚动位置的y坐标,然后根据这个值来计算实际加载的位置。

    以下是一个简单的示例:

    import UIKit
    
    class ViewController: UIViewController, UIWebViewDelegate {
    
        @IBOutlet weak var webView: UIWebView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // 隐藏滚动条
            self.webView.allowsBackForwardNavigationGestures = false
            self.webView.allowsContentScolling = false
            self.webView.backgroundColor = .white
            
            // 设置自定义字体和样式
            self.webView.font = UIFont.systemFont(ofSize: 14)
            self.webView.style = .plain
            
            // 调用webviewDidFinishLoad方法
            self.webView.delegate = self
            self.webView.loadRequest(URLRequest(string: "http://example.com").asURL())
        }
    
        // MARK: - UIWebViewDelegate methods
    
        func webView(_ webView: UIWebView, didSynchronizeWithWebResourceHandler handler: WKUserContentController) {
            if let url = handler.url {
                let positionY = Double(webView.scrollView.contentOffset.y)
                let actualPosition = Double(url.absoluteString.distance(from: URL(string: url.absoluteString)!)) + positionY
                
                print("Actual Position: \(actualPosition)")
            }
        }
    }
    

    这段代码首先隐藏了滚动条,并设置了自定义字体和样式。然后,它调用了webviewDidFinishLoad方法,传入了一个WKUserContentController对象,用于处理用户提交的资源请求。

    最后,在didSynchronizeWithWebResourceHandler方法中,我们检查了当前正在加载的URL,如果它是已经存在的URL,则计算出滚动到这个新位置的实际位置,并打印出来。

    评论

报告相同问题?