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

UIWebView添加导航控制器后,怎么设置才能让UIWebView从真正的(0.0)点开始?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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,则计算出滚动到这个新位置的实际位置,并打印出来。解决 无用评论 打赏 举报