无法显示添加到 WKWebView 的子视图

Posted

技术标签:

【中文标题】无法显示添加到 WKWebView 的子视图【英文标题】:Unable to display subview added to WKWebView 【发布时间】:2015-04-02 10:37:47 【问题描述】:

我正在使用 Swift 和 WKWebView 为应用程序创建嵌入式视图。我一直在添加和显示 UIProgressView(我的子视图)。

每当我将它添加到故事构建器(在视图顶部)然后运行应用程序时,由于我的代码(我将 self.view 与我创建的 WKWebView 的实例相关联),它不会显示。

因此我尝试了一种替代方法并以编程方式添加它,但也不起作用。

这是我的代码(对于第一种方法,只需忽略 UIProgressView 的编程声明):

import UIKit
import WebKit

class SupportWebView: UIViewController, WKNavigationDelegate 
    @IBOutlet var containerView : UIView? = nil
    @IBOutlet var progressView : UIProgressView? = nil

    var webView: WKWebView?

    dynamic var myProgress: Double  = 0
    private var myContext = 0

    override func loadView() 
        super.loadView()
        self.webView = WKWebView()
        self.view = self.webView
        self.webView?.navigationDelegate = self
        self.webView?.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: &myContext)

        let progressView = UIProgressView(progressViewStyle: .Bar)
        progressView.center = view.center
        progressView.progress = 20.0/30.0
        progressView.trackTintColor = UIColor.lightGrayColor()
        progressView.tintColor = UIColor.blueColor()
        self.webView?.addSubview(progressView)
//        self.webView.addSubview(progressView)
    

我尝试以编程方式将 UIProgressView 添加到 WKWebView 视图,但它不起作用..关于如何解决这个问题的任何建议?它似乎只显示主 WKWebView 而忽略子视图(它们可能在 Web 视图渲染之前渲染,因此它们消失了)。

【问题讨论】:

【参考方案1】:

我测试了您的代码并通过将progressView.center = view.center 更改为progressView.frame = CGRectMake(100.0, 100.0, 200.0, 5.0) 之类的东西来呈现progressView。我在 Storyboard 上没有做任何事情就进行了测试。

【讨论】:

以上是关于无法显示添加到 WKWebView 的子视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS WKWebView - 无法添加出口,只有动作

WKWebView 添加到子视图,并将大小设置为等于父视图?

使用 Swift 4 滚动 WKWebview

WKWebView 添加到子视图

隐藏WKWebView避免VoiceOver识别ios

将标题视图添加到 WKWebView ScrollView