菜鸟教程小白 发表于 2022-12-11 20:33:13

ios - WKWebView 不会出现在自定义 UIView 中


                                            <p><p>我有一个带有 xib 的自定义 UIView。除内容 View 外,xib 为空。</p>

<p>在相应的类中我加载了xib,然后我尝试像这样创建一个WKWebView:</p>

<pre><code>@IBOutlet var contentView: UIView!

...

Bundle.main.loadNibNamed(&#34;CustomView&#34;, owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds

let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: self.frame, configuration: webConfiguration)
webView.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(webView)

webView.backgroundColor = UIColor.orange    // Just to check visually
</code></pre>

<p>在我的 UIViewController 中:</p>

<pre><code>let v = CustomView.init(frame: frame)
self.view.addSubview(v)
</code></pre>

<p>当我运行我的项目时,当 ViewController 出现时,我可以看到带有橙色背景的 WebView ,但它立即消失了,我的代码有什么问题?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>注意,<code>webView.backgroundColor</code> 不能按预期工作。尝试使用 <code>load</code> url 函数或调用 <code>loadHTMLString</code> 来验证。</p>

<p>只是为了确保它不是布局问题,使用“Debug View Hierarchy”(当 Debug 运行应用程序时单击 Xcode 中的双矩形图标)来检查 subview 的边界/框架。如果您在那里看到问题,那么您需要添加适当的布局约束。</p>

<p>如果是这样,您还可以对上述所有 addSubview 调用使用以下实用程序函数。它通过将 subview 边缘拉伸(stretch)到另一个 View 中(全宽和高度)来在另一个 View 内添加一个 subview 。</p>

<pre><code>public static func add(_ subView: UIView, in containerView: UIView) {
    containerView.addSubview(subView)
    subView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
      subView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
      subView.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
      subView.topAnchor.constraint(equalTo: containerView.topAnchor),
      subView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
      ]
    )
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - WKWebView 不会出现在自定义 UIView 中,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/52185547/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/52185547/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - WKWebView 不会出现在自定义 UIView 中