gpt4 book ai didi

ios - 移动 WKWebview 框架导致部分框架无响应

转载 作者:可可西里 更新时间:2023-11-01 01:26:36 28 4
gpt4 key购买 nike

我在 WKWebView 的顶部有一个工具栏。如下所示。有一些限制将工具栏放在 web View 之上(见下文)。 webview 如下所示,黑色线条被绘制以分隔工具栏和 webview,但它不是应用程序的一部分。

enter image description here

在应用程序的某些页面上,我想删除工具栏。我使用下面的代码来这样做:

    let toolBarNF = CGRect(x: 0 , y: -44 , width: toolBar.frame.width , height:44)
toolBar.frame = toolBarNF

let webViewNF = CGRect(x: 0 , y: -44 , width: webView.frame.width , height: (originalWHeight + originalTHeight))
webView.frame = webViewNF

其中originalWHeight是webview的原始高度,originalTheight是toolbar的原始高度。

这产生了以下框架:

enter image description here

我发现的问题是通过将 webview 框架向上移动 44 像素,WKWebview 的顶部 44 像素变得不可点击且无响应。所以我的菜单按钮都不起作用,除非你点击它们的底部。我认为有一些内置的东西可以将响应覆盖“锁定”到它,但我对此还不太了解。它也可能是工具栏覆盖,但我对此了解不够。

另一件重要的事情是,其他地方的按钮似乎在正确的位置工作,这意味着我不需要点击它们应该在的位置上方 44 像素处。

我尝试过的一件事是通过使用 webView.updateConstraintsIfNeeded() 对此 View 和应用程序中的其他 View 更新约束,但这没有用。

下面是我 View 中的约束(这两个 View 在容器 View 中)

enter image description here

有没有人知道这个问题的解决方案或任何可以帮助我的东西?先谢谢你!

最佳答案

使用自动布局

  1. toolbar.Top 锚定到 Top Layout Guide.Bottom
  2. webview.Top 锚定到 toolbar.bottom

要更改工具栏的位置(及其隐藏状态),请更改约束 #1 的常量。您需要对该约束的引用,在当前示例中为 toolbarTopAnchor:

@IBOutlet weak var toolbarTopAnchor: NSLayoutConstraint!
var toolbarVisible = true

@IBAction func doToggleVisibility(_ sender: Any) {
toolbarVisible = !toolbarVisible
toolbarTopAnchor.constant = ((toolbarVisible) ? 0 : -44)
}

animation
↻ replay animation


进一步的建议

  1. 不要硬编码工具栏的高度

    self.toolbarTopAnchor.constant = ((self.toolbarVisible)
    ? 0
    : -self.toolbar.frame.height) // Not hardcoded
  2. 动画过渡

    @IBAction func doToggleVisibility(_ sender: Any) {
    toolbarVisible = !toolbarVisible
    UIView.animate(withDuration: 0.4) {
    self.toolbarTopAnchor.constant = ((self.toolbarVisible)
    ? 0
    : -self.toolbar.frame.height)
    self.view.layoutIfNeeded()
    }
    }
  3. 您可能希望在状态栏和工具栏之间插入一个封面。这是通过 Interface Builder 中的零代码行实现的。

► 在 GitHub 上找到此解决方案以及有关 Swift Recipes 的更多详细信息.

关于ios - 移动 WKWebview 框架导致部分框架无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291054/

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