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

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

新規登録して質問してみよう
ただいま回答率
85.47%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

807閲覧

addSubViewでWKWebViewが追加できない

uS_aito

総合スコア145

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/04/07 15:06

実現したいこと

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2019/04/09 06:36 編集

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

2019/04/17 07:22

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

回答2

0

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

Swift

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

投稿2019/04/08 00:51

dsuzuki

総合スコア1682

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uS_aito

2019/04/09 06:03 編集

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

0

自己解決

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

Unknown class _TtC13WKWebViewTest14ViewController in Interface Builder file.

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

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

投稿2019/04/09 06:10

uS_aito

総合スコア145

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2019/04/09 06:35

dsuzukiさんの回答を反映させなくても直った(表示された)ということでしょうか?
fuzzball

2019/04/09 09:02

スクリーンショットを見ると、WKWebViewが追加されていることを確認できます。 ということは、質問をした時点ではCutom Classは正しく設定されていたということです。 この回答は、質問後、何かの拍子に変更してしまったCustom Classを元に戻しているだけで、質問の回答にはなっていないと思われますので、低評価を入れさせていただきました。
uS_aito

2019/04/17 07:24

> dsuzukiさんの回答を反映させなくても直った(表示された)ということでしょうか? 反映させる、させないで結果が変わりませんでした。 > この回答は、質問後、何かの拍子に変更してしまったCustom Classを元に戻しているだけで、質問の回答にはなっていないと思われますので、低評価を入れさせていただきました。 まあ実際おっしゃる通りです。custom classを元に戻しただけのはずである、というのは私も同じ認識です。なのになぜか動いた、という時点で何かしら私が見落とした要素が絡んでいるんでしょうが、それの特定まで至らなかったため、有意義な結果とはならなかったと申し添えました。
fuzzball

2019/04/17 07:42

>>反映させる、させないで結果が変わりませんでした。 それはCustom Classが設定されていない状態での話ではないのですか? Custom Classが設定されていない状態では、いくらコードを変更しても何も変わりません。 それとも、dsuzukiさんの回答の修正を行っていない状態(ようするに、現在質問に書かれているコードのままで)正しく表示されているということでしょうか?
uS_aito

2019/04/17 07:54

そうですね。
fuzzball

2019/04/17 07:55

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

2019/04/17 07:57

通報しました、
fuzzball

2019/04/17 08:01

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問