swift – UIWebView动态内容大小

swift – UIWebView动态内容大小,第1张

概述我一直在环顾四周,并没有能够看到任何快速相关的方法来做到这一点.我试图让我的UIWebViews高度变得动态.我有一个使用loadHtmlString函数加载数据的UIWebView.事情是我从sqlite数据库加载数据,每次我加载不同长度的不同字符串时自然web视图获得不同的高度. 现在我需要知道如何使UIWebView具有精确的高度,以便在webView下加载我的下一个内容.这就是我到目前为止 我一直在环顾四周,并没有能够看到任何快速相关的方法来做到这一点.我试图让我的UIWebVIEws高度变得动态.我有一个使用loadHTMLString函数加载数据的UIWebVIEw.事情是我从sqlite数据库加载数据,每次我加载不同长度的不同字符串时自然web视图获得不同的高度.
现在我需要知道如何使UIWebVIEw具有精确的高度,以便在webVIEw下加载我的下一个内容.这就是我到目前为止所拥有的
var jobSkillVIEw = UIWebVIEw(frame: CGRectMake(-5,480.0,screenWIDth,300.0))jobSkillVIEw.loadHTMLString("<HTML><body p style='Font-family:arial;Font-size:16px;'>" + jobSkills + "</body></HTML>",baseURL: nil)jobSkillVIEw.stringByEvaluatingJavaScriptFromString("document.body.INNERHTML")jobSkillVIEw.scrollVIEw.scrollEnabled = truejobSkillVIEw.scrollVIEw.bounces = truejobSkillVIEw.sizetoFit()border.addSubvIEw(jobSkillVIEw)

我在SO上找到了这样的东西,但不知道如何将它链接到UIWebVIEw的框架:

func webVIEwDIDFinishLoad(jobSkillVIEw : UIWebVIEw){    // Change the height dynamically of the UIWebVIEw to match the HTML content    var jobSkillVIEwFrame: CGRect = jobSkillVIEw.frame    jobSkillVIEwFrame.size.height = 1    jobSkillVIEw.frame = jobSkillVIEwFrame    var fittingSize: CGSize = (jobSkillVIEw.sizeThatFits(CGSizeZero))    jobSkillVIEwFrame.size = fittingSize    // webVIEwFrame.size.wIDth = 276; Making sure that the webVIEw doesn't get wIDer than 276 px    jobSkillVIEw.frame = jobSkillVIEwFrame    var jobSkillVIEwHeight = jobSkillVIEw.frame.size.height}
此帖已经更新为Swift 4& WKWebVIEw

所以这是你在那里写的一个非常好的功能,OP!
这是一个更短,更优雅的代码版本:

// make sure to declare the delegate when creating your webVIEw (add uiwebviewdelegate to class declaration as well)myWebVIEw.delegate = selffunc webVIEwDIDFinishLoad(webVIEw: UIWebVIEw) {     webVIEw.frame.size.height = 1     webVIEw.frame.size = webVIEw.sizeThatFits(CGSize.zero)}

迁移到WKWebVIEw

1)导入WebKit
2)使您的VIEwController继承自WKNavigationDelegate
3)连接WKWebVIEw的委托:webVIEw.navigationDelegate = self
4)实现以下协议功能:

webVIEw(_ webVIEw: WKWebVIEw,dIDFinish navigation: WKNavigation!)

从UIWebVIEw迁移到WKWebVIEw后,上述方法似乎不再起作用.
您可以做的是将webVIEw.sizeThatFits(CGSize.zero)更改为:

webVIEw.frame.size = webVIEw.scrollVIEw.contentSize

WKWebVIEw的完整代码将是:

func webVIEw(_ webVIEw: WKWebVIEw,dIDFinish navigation: WKNavigation!) {    webVIEw.frame.size.height = 1    webVIEw.frame.size = webVIEw.scrollVIEw.contentSize}
总结

以上是内存溢出为你收集整理的swift – UIWebView动态内容大小全部内容,希望文章能够帮你解决swift – UIWebView动态内容大小所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1049524.html

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

发表评论

登录后才能评论

评论列表(0条)

保存