gpt4 book ai didi

ios - SWIFT - ScrollView 内的 WKWebView 中的 HTML 滚动事件

转载 作者:IT王子 更新时间:2023-10-29 05:24:17 29 4
gpt4 key购买 nike

我有一个用于测试目的的网页(https://storage.googleapis.com/htmltestingbucket/nested_scroll_helper.html),它只打印 html 在固定标题中捕获的滚动事件的计数器

当 WKWebView 是片段中唯一可滚动的元素时,一切都很好,WebView 将滚动事件发送到页面

如果我想在 WebView 的上方和下方添加原生元素,那么事情会变得更加复杂。

UIScrollView  
UILabel
WKWebView
UILabel

我知道在 ScrollView 中包含 WebView 不好,但我必须在 html 文档中提供具有混合内容和适当滚动事件的单一滚动体验。我发现了很多关于此事的问题,但我无法创建完整的端到端解决方案。

最佳答案

更新:好的,我花了一些时间才明白您要做什么。

我知道你想保留外部 ScrollView ,但我很确定你不可能实现你想做的事情(唯一的方法是设置 outerScrollView.delegate = webView - 但在我尝试时对我不起作用)

我认为最好的解决方案是:

  1. 移除你的外层 scrollView
  2. 将 webView 的 contentInsets 设置为您需要的顶部和底部的任何高度。例如。对于 100pt:webView.contentInset = UIEdgeInsetsMake(100,0,100,0);
  3. 将您的 UIElement 作为 subview 添加到您的 UIWebView 而不是 UIScrollView(基本上添加到您使用 contentInsets 创建的可用空间中)

以前(其他方式):

  1. 设置 UIWebView 的高度限制
  2. 在您的 UIViewController 中将高度约束存储为 IBOutlet
  3. 在您的viewDidLoad 或 Storyboard中设置webView.scrollView.scrollEnabled = NO;
  4. 一旦加载 webView,提取其内容高度 webView.scrollView.contentSize.height
  5. 通过 self.webViewContentHeightConstraint.constant = webView.scrollView.contentSize.height的内容高度值更新 UIWebView 高度约束
  6. 调用 [self.scrollView layoutIfNeeded];确保您的 View 再次呈现

不要忘记在 webView 完成加载内容时执行步骤 4 和 5

enter image description here

关于ios - SWIFT - ScrollView 内的 WKWebView 中的 HTML 滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35155657/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com