ios – SWIFT – 滚动视图内的WKWebView中的HTML滚动事件

ios – SWIFT – 滚动视图内的WKWebView中的HTML滚动事件,第1张

概述我有一个用于测试目的的网页( https://storage.googleapis.com/htmltestingbucket/nested_scroll_helper.html),只是打印一个滚动事件的计数器,html已经在一个固定的标题 当WKWebView是片段中唯一的可滚动元素时,所有内容都很好,WebView将滚动事件发送到页面 如果我想在WebView之上和之下添加本机元素,那么事情会 我有一个用于测试目的的网页( https://storage.googleapis.com/htmltestingbucket/nested_scroll_helper.html),只是打印一个滚动事件的计数器,HTML已经在一个固定的标题

当WKWebVIEw是片段中唯一的可滚动元素时,所有内容都很好,WebVIEw将滚动事件发送到页面

如果我想在WebVIEw之上和之下添加本机元素,那么事情会变得复杂得多.

UIScrollVIEw      UILabel    WKWebVIEw    UILabel

我知道在ScrollVIEw中有一个WebVIEw是不好的,但我必须提供一个滚动体验混合内容和正确的滚动事件在HTML文档.我在这件事上发现了很多问题,但是我无法创建一个完整的端到端解决方案.

解决方法@H_502_12@ 更新:
好的,我花了一阵时间了解你要做的事情.

我知道你想保留外部scrollVIEw,但我很确定不可能实现你想要做的(只有这样,如果你设置了outerScrollVIEw.delegate = webVIEw – 但没有为我工作我试过了)

我认为最好的解决办法是:

删除外部scrollVIEw
>将您的webVIEw的contentInsets设置为您需要的顶部和底部的任何高度.例如.为100pt:webVIEw.contentInset = UIEdgeInsetsMake(100,100,0);
>将您的UIElements作为子视图添加到您的UIWebVIEw而不是UIScrollVIEw(基本上到您使用contentInsets创建的可用空间)

以前(其他方式):

>设置您的UIWebVIEw的高度约束
>将您的UIVIEwController中的高度约束存储为IBOutlet
> set webVIEw.scrollVIEw.scrollEnabled = NO;在你的vIEwDIDLoad或故事板
>一旦webVIEw被加载,提取其内容高度webVIEw.scrollVIEw.contentSize.height
>使用其内容高度的值更新UIWebVIEw height约束viaself.webVIEwContentHeightConstraint.constant = webVIEw.scrollVIEw.contentSize.height
>调用[self.scrollVIEw layoutIfNeeded];以确保您的视图再次呈现

不要忘了做4& 5每当webVIEw完成加载内容

总结

以上是内存溢出为你收集整理的ios – SWIFT – 滚动视图内的WKWebView中的HTML滚动事件全部内容,希望文章能够帮你解决ios – SWIFT – 滚动视图内的WKWebView中的HTML滚动事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1110437.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存