質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.82%

addSubViewでWKWebViewが追加できない

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,319

uS_aito

score 139

実現したいこと

WKWebViewでgoogleを表示できれば良いです。

環境

  • Xcode 10.1
  • Swift 4.0

問題

以下のソースを記述し、iPhone Xのシミュレータで試していますが、WKWebViewが表示されません。

import UIKit
import WebKit

class WebViewController: UIViewController, WKNavigationDelegate {

    let webview = WKWebView()
    let testurl = URL(string: "https://www.google.co.jp")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        webview.frame = view.bounds
        webview.navigationDelegate = self
        webview.translatesAutoresizingMaskIntoConstraints = false
        webview.backgroundColor = UIColor.green

        webview.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        self.view.addSubview(webview)

        webview.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0.0).isActive = true
        webview.trailingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0.0).isActive = true
        webview.topAnchor.constraint(equalTo: view.topAnchor, constant: 0.0).isActive = true
        webview.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0.0).isActive = true

        let request = URLRequest(url: (testurl)!)
        self.webview.load(request)

    }

}

どのようなviewが作成されているのかを確認するため、capture view hierarchyを実行したところ、以下のような結果が得られました。
どうもそもそもWKWebViewが追加できていないように見えます。
capture view hierarchy

ご意見等頂けますと幸いです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • fuzzball

    2019/04/09 15:16 編集

    >>そもそもWKWebViewが追加できていないように見えます
    私には追加出来ているように見えますが?
    WKWebViewを選択して、サイズや制約がどうなっているか調べて下さい。

    キャンセル

  • uS_aito

    2019/04/17 16:22

    表現が悪かったです。
    左のツリー(と言っていいのかわかりませんが)をみるとWKWebViewが追加されていますが、右側のキャプチャされたレイヤを確認するとWKWebViewが見えません。
    比較のため、以前作成した、同じようにWKWebViewを使用したアプリでキャプチャを行ったところ、WKWebViewのレイヤがさらに表示されていました。それが出ていないということを言いたかったです。

    キャンセル

回答 2

+1

webviewのtralingAnchorが、WebViewController.viewのleadingAnchorと一致する制約になっているので、webviewの横幅がゼロになっていませんか。

webview.trailingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0.0).isActive = true

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/09 15:03 編集

    指摘いただき、ありがとうございます。
    当該箇所を以下のように修正しましたが、結果に変化はありませんでした。
    ```Swift
    webview.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0.0).isActive = true
    ```

    キャンセル

check解決した方法

-1

自己解決しました。
改めてビルド時のメッセージを確認したところ、以下のようなエラーが表示されていることに気がつきました。

Unknown class _TtC13WKWebViewTest14ViewController in Interface Builder file.


このエラーメッセージで検索したところ、以下のサイトが見つかりました。
https://qiita.com/eidera/items/f6fd3b1088d7bd6fe523
当該ViewContollerのClassセレクトボックス(サイトの記述と異なります)を選択肢Enterを押した後にビルドしたところ、動作しました。

正直Enterを押す前と後で何ら表示が変わっておらず、なぜビルドが成功したのか、差分がまったく不明です。
Swift/Xcodeどちらも初心者のため、何らかの設定変更を無自覚に行っており、それが原因である可能性もあります。
あまり有意義な結果とはなりませんでしたが、ひとまず目的は達せられたため、わかっている範囲で行った操作を記述しておきました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/17 16:55

    嘘付きなのか、馬鹿なのか、どっちですか?

    キャンセル

  • 2019/04/17 16:57

    通報しました、

    キャンセル

  • 2019/04/17 17:01

    通報しても何も解決しませんよ?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.82%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る