2016-05-31 3 views
1

Ich versuche eine "native" Webapp für iOS zu erstellen, weil ich nicht wirklich tief in die Swift Materie eindringen will, weil ich seit Jahren ein Webentwickler bin und es mit dem UIWebView sehr einfach ist, diesen Weg zu gehen.iOS (Swift): Wie man die Höhe eines UIWebView skaliert, wenn die Tastatur nicht benutzt wird

Aber leider habe ich ein Problem mit der Größe des UIWebView. Mein Ziel ist es, die Höhe des UIWebView automatisch zu ändern, wenn die Tastatur ein-/ausgeschaltet wird, so dass das WebView nur den verfügbaren freien Platz auf dem Bildschirm einnimmt.

Die iOS App selbst ist in Swift codiert und ich denke, der richtige Ansatz wird eine Tastatur Benachrichtigungen (UIKeyboardDidShowNotification, UIKeyboardWillHideNotification) verwenden.

Ich schätze Ihre Hilfe sehr. Danke im Voraus!

Antwort

2

Zum einen können Sie diesen Code auf Ihrer Viewcontrollers innerhalb viewDidLoad add() -Methode

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShowFunction:", name: UIKeyboardWillShowNotification, object: nil) //WillShow and not Did ;) The View will run animated and smooth 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHideFunction:", name: UIKeyboardWillHideNotification, object: nil) 

Sie sollten Scroll Hintergrund auf Ihrem webView hinzufügen Und dann sollten Sie diese beiden Funktionen hinzufügen, die bereitstellt, wenn Tastatur Show zu bekommen oder verstecken und dann ändern Sie nur die Einsätze und Offsets auf Ihrem scrollView

func keyboardWillShowFunction(notification: NSNotification) { 
    if let userInfo = notification.userInfo { 
     if let keyboardSize: CGSize = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue().size { 
     let contentInset = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height, 0.0); 
     self.scrollView.contentInset = contentInset 
     self.scrollView.scrollIndicatorInsets = contentInset 
     self.scrollView.contentOffset = CGPointMake(self.scrollView.contentOffset.x, 0 + keyboardSize.height) 
    } 
    } 
} 

func keyboardWillHideFunction(notification: NSNotification) { 
    if let userInfo = notification.userInfo { 

     if let keyboardSize: CGSize = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue().size { 
     let contentInset = UIEdgeInsetsZero; 
     self.scrollView.contentInset = contentInset 
     self.scrollView.scrollIndicatorInsets = contentInset 
     self.scrollView.contentOffset = CGPointMake(self.scrollView.contentOffset.x, self.scrollView.contentOffset.y) 

     } 
    } 
} 
+1

Heya Vielen Dank für Ihre Hilfe bisher. Ich habe versucht, den Code oben, aber es funktioniert nicht in der Art, wie es geschrieben ist: http://zetaneon.net/share/download/XCode.png All diese "Selbst" -Aussagen zeigen jetzt wo (und ich denke, ich bin nur zu dump, um es richtig zu implementieren). Natürlich habe ich schon ein bisschen mit dem Code gespielt und versucht, alle "self" Statements mit "webView" zu ändern. Dies hat bereits einige Auswirkungen, aber macht das UIWebView nur ein wenig "federt", wenn eine Eingabe ausgewählt wird. Abgesehen davon bleibt die Größe des WebView unverändert. Nochmals vielen Dank;) –

+0

Als zusätzliche Information, weil dies ein Problem sein kann hier: Das WebView hat die Größe des gesamten Bildschirms. Dies geschieht durch Einschränkungen mit einem Abstand von 0 zu allen Seiten. –

Verwandte Themen