gpt4 book ai didi

html - 以编程方式调整 wkwebview 的高度

转载 作者:行者123 更新时间:2023-11-29 05:28:56 25 4
gpt4 key购买 nike

这是我在 Stack Overflow 上的第一个问题。我刚刚开始学习 swift 编程,并陷入了一些事情。

我按照 YouTube 上的 IAP 教程进行操作,并在我的应用中成功实现了 AdMob 横幅和插页式广告。我还可以使用 IAP 关闭广告。我的问题是:

我有一个 View ,其中有两个 UI 元素(WKWebViewGADBannerView)。 WKWebView 元素覆盖从 x:0,y:0 开始的 90% 屏幕,而 GADBannerView 元素覆盖 10%。我关闭了广告并使用 IAP 隐藏了 GADBannerView 元素。

现在我想动态/以编程方式调整 WKWebView 大小以填充整个屏幕,即 100%。换句话说,我希望 WKWebView 元素扩展到隐藏的 GADBannerView 元素。

这是因为隐藏 GADBannerView 会留下一个空白字段,这对 View 来说并不酷,并且 WKWebView 看起来被截断。

请注意,这两个 View 都不是 subview 。两者都是单独添加的独立 View 。据我所知,我最初可以使 WebView 填满整个屏幕,在其顶部添加 GADBannerView ,当我删除广告并隐藏 GADBannerView 时, WebView 将填满屏幕。这不是我想要的,因为使用这种方法无法看到 WebView 的某些内容。如果我在 HTML 页面末尾有一个在 Web View 上加载的按钮,则无法单击该按钮,因为即使滚动到底部,它也始终位于 gad 横幅 View 后面。是的,您可以滚动并按住以查看该按钮,但是一旦松开它,它就会返回下方。

回顾一下,我有两个单独的 View ,并且想要隐藏一个 View 并延长另一个 View 的长度以覆盖整个屏幕。

请告诉我如何实现这一目标。

thirdBannerView.isHidden = true //Hide the banner view

//then code below to increase the size of the web view to equal device //screen width and height i.e full screen.

func webViewDidFinishLoad(webView: WKWebView) {
//let screenBounds = UIScreen.main.bounds
// let heightq = screenBounds.height
//let widthq = screenBounds.width
//webView.frame.size.height = heightq
//webView.frame.size = webView.sizeThatFits(CGSize.zero)
//webView.frame = CGRectMake(0, 0, widthq, heightq);
webView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
}

此代码根本无效,因为没有任何更改。请让我知道如何实现这一目标。

最佳答案

这种特殊场景对于应用 UIStackview 来说看起来很有希望。添加两个 View (WKWebviewGADBannerView)。为 GADBannerview 应用固定高度。如有必要,只需隐藏 GADBannerview

示例代码


class StackviewController : UIViewController {
let stackview: UIStackView = {
let view = UIStackView()
view.axis = .vertical
view.distribution = .fill
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()

// Your WKWebview here
let sampleWKWebView: UIView = {
let view = UIView()
view.backgroundColor = .red
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()

// Your GADBannerView here
let sampleGADBannerView: UIView = {
let view = UIView()
view.backgroundColor = .green
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()

override func viewDidLoad() {
super.viewDidLoad()

setupViews()
}

func setupViews() {
view.addSubview(stackview)

stackview.addArrangedSubview(sampleWKWebView)
stackview.addArrangedSubview(sampleGADBannerView)


NSLayoutConstraint.activate([
stackview.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0.0),
stackview.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0.0),
stackview.topAnchor.constraint(equalTo: view.topAnchor, constant: 0.0),
stackview.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0.0),
sampleGADBannerView.heightAnchor.constraint(equalToConstant: 100.0)
])


// Enable this line to hide the GADBannerView
// sampleGADBannerView.isHidden = true
}
}

这是输出

enter image description here

我使用两个UIView来表示WKWebViewGADBannerView。在示例代码中,取消注释以下内容以隐藏底部横幅,例如绿色 View 。

sampleGADBannerView.isHidden = true

关于html - 以编程方式调整 wkwebview 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57860571/

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