无法显示添加到 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 的子视图的主要内容,如果未能解决你的问题,请参考以下文章