WebView in View setzen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • WebView in View setzen

    Servus zusammen :thumbsup:

    Ich habe heute folgendes Problem.
    Ich möchte gerne in meiner App eine Rezeptseite Anzeigen.
    Hierfür habe ich mich bereits mit dem WebView Kit auseinandergesetzt, das Anzeigen klappt problemlos, jedoch nur im "FullScreen".
    Kann man die Größe der davon beanspruchten Fläche verändern? Beispielsweise oben 20 Punkte Abstand zum Top Layout damit oben das Logo des Kochclubs und ein zurück Button eingefügt werden kann? :S
    Ich habe mich mal künstlerisch verausgabt um euch meine Vorstellung näher bringen zu können :saint:
    Kochbuch.PNG




    Vielen Dank für eure Hilfe,

    Grüße,

    Ferdi
  • So ganz verstehe ich Dein Problem nicht: Du kannst eine WKWebView doch - wie jede andere View - in eine andere einbinden und z. B. mit AutoLayout in der Grösse / Position definieren.

    Oder gemäß Deiner Skizze in einen NavigationController einbinden und somit eine "Titelzeile" inkl. Back-Button erhalten...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Hm, so bin ich das ganze bisher noch gar nicht angegangen.
    Ich habe einen ViewController erstellt und das WebView durch folgenden Code anzeigen lassen:

    Quellcode

    1. import UIKit
    2. import WebKit
    3. class ViewController: UIViewController, WKUIDelegate {
    4. var webView: WKWebView!
    5. override func loadView() {
    6. let webConfiguration = WKWebViewConfiguration()
    7. webView = WKWebView(frame: .zero, configuration: webConfiguration)
    8. webView.uiDelegate = self
    9. view = webView
    10. }
    11. override func viewDidLoad() {
    12. super.viewDidLoad()
    13. let myURL = URL(string:"https://www.chefkoch.de")
    14. let myRequest = URLRequest(url: myURL!)
    15. webView.load(myRequest)
    16. }}
    Alles anzeigen

    Meinst du also ich sollte den Baustein WebKit View verwenden?
  • Ferdinand schrieb:

    Meinst du also ich sollte den Baustein WebKit View verwenden?
    Meinst Du mit "Baustein", die WKWebView im InterfaceBuilder hinzuzufügen? Das habe ich gar nicht angesprochen und es ist vollkommen egal, ob Du die WebView - wie oben - im Code erzeugst oder per IB.

    Wenn Du allerdings diese WebView per view = webView zur Hauptview Deiners Controllers machst, nimmt sie den gesamten Raum ein. Stattdessen könntest Du sie als Sub-View hinzufügen und z. B. über LayoutConstraints positionieren. Auch hier ist es wieder egal, ob programmatisch oder per IB.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ich habe jetzt mal alles so zusammengebaut wie ich mir das vorgestellt habe.
    Hierfür habe ich auf die halbe Bildschirmhöhe und volle Breite, ein view per IB aufgezogen.
    Die Constraints sind auch gesetzt, wenn ich das view Feld jetzt braun einfärbe, klappt alles problemlos.

    Ich habe ein Outlet zum View erstellt. (viewNeu)

    Wie kann jetzt festgelegt werden dass das WebView nur dort drinne angezeigt wird?
    viewNeu = webView klappt nicht, dadurch wird einfach nur die ganze Seite schwarz.

    Ferdi
  • Quellcode

    1. import UIKit
    2. import WebKit
    3. class ViewController12: UIViewController, WKUIDelegate {
    4. private var webView = WKWebView(frame: CGRect.zero, configuration: WKWebViewConfiguration())
    5. override func viewDidLoad() {
    6. super.viewDidLoad()
    7. // set the delegate for webView
    8. webView.uiDelegate = self
    9. // define URL
    10. let myURL = URL(string:"https://chefkoch.de/")
    11. // create request
    12. let myRequest = URLRequest(url: myURL!)
    13. // show request
    14. webView.load(myRequest)
    15. // make webView ready for Autolayout
    16. webView.translatesAutoresizingMaskIntoConstraints = false
    17. // add webView to view
    18. view.addSubview(webView)
    19. // size the webView beeing 75 % of the screen
    20. webView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    21. webView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    22. webView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    23. webView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.75).isActive = true
    24. }
    25. }
    Alles anzeigen
    So sieht das ganze jetzt bei mir aus, klappen tuts aber leider nicht ?(
  • Um Gott´s willen bin ich doof X/
    Ich habe den WebView oben angeheftet und nicht oben...

    Hat alles geklappt, vielen Dank euch! :)

    Quellcode

    1. import UIKit
    2. import WebKit
    3. class ViewController12: UIViewController, WKUIDelegate {
    4. private var webView = WKWebView(frame: CGRect.zero, configuration: WKWebViewConfiguration())
    5. override func viewDidLoad() {
    6. super.viewDidLoad()
    7. // set the delegate for webView
    8. webView.uiDelegate = self
    9. // define URL
    10. let myURL = URL(string:"https://chefkoch.de/")
    11. // create request
    12. let myRequest = URLRequest(url: myURL!)
    13. // show request
    14. webView.load(myRequest)
    15. // make webView ready for Autolayout
    16. webView.translatesAutoresizingMaskIntoConstraints = false
    17. // add webView to view
    18. view.addSubview(webView)
    19. // size the webView beeing 75 % of the screen
    20. webView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    21. webView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    22. webView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0).isActive = true
    23. webView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.75).isActive = true
    24. }
    25. }
    Alles anzeigen