2010-07-27 6 views
8

Ich habe Webview.Wie Subview zu einer Webansicht hinzufügen, so dass die Unteransicht mit Webview zusammenrollen?

Jetzt möchte ich eine Unteransicht hinzufügen. Ich habe es mit der addsubview-Methode hinzugefügt.

Die Ansicht wurde hinzugefügt, aber nicht mit Webview gescrollt.

Ich möchte meine Subview mit dem Webview gescrollt werden.

Wie kann ich das tun?

Grüße, Akshay.

+0

Das ist seltsam, eine Unteransicht zu einem Webview hinzuzufügen. Was versuchst du zu machen ? –

+0

Hier ist die Lösung http://stackoverflow.com/q/43533068/6521116 –

Antwort

0

Um dies zu tun, müssten Sie mit den Interna von UIWebView basteln und herausfinden, es ist Ansichtshierarchie, so dass Sie die Unteransicht innerhalb der scoller hinzufügen können.

Es ist wahrscheinlich einfacher, Ihre HTML innerhalb der Ansicht zu optimieren, so dass Sie etwas ähnliches zu Ihrer benutzerdefinierten Ansicht (Text oder ein Bild) darin einfügen können.

Sie können später mit Ihrer "falschen Ansicht" über Javascript interagieren.

+0

Ist es möglich, wenn ich ein UIWebView-Objekt habe? Ich muss mit bestehenden WebView-Objekt arbeiten und kann nicht neu erstellen durch Unterklassen .. –

17

Sie müssen lediglich Ihre Subview der UIScrollView des UIWebView so fügen Sie Ihre Subview Rolle mit dem webview Inhalt haben:

[webView.scrollView addSubview:youSubView]; 
+1

Für den Datensatz wurde die 'scrollView'-Eigenschaft in iOS 5.0 hinzugefügt. –

+0

in der Tat nur nach iOS 5.0 verfügbar, aber das ist ein fabelhafter Trick; Ich habe es nur verwendet, um meinen Spinner zum Laden in ein WebView zu erlauben, um innerhalb der Grenzen des UIWebView untergebracht zu werden. perfekt! –

+0

kann es mir nur helfen, bis zu 126 Unteransichten hinzuzufügen –

0

die Sie interessieren, wird es

[[[yourwebview arbeiten Unteransichten] objectAtIndex: 0] addSubview: yoursubview];

0

Angenommen, Sie möchten Ihre Ansicht auf eine Region mit Film-ID im HTML-Format. Überprüfen Sie meine post hier.

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    self.wk.evaluateJavaScript("var rect = document.getElementById('movie').getBoundingClientRect();[rect.left, rect.top];") { 
     (result, error) -> Void in 
     print(result) 
     self.player.view.frame.origin.x = (result as! Array)[0] 
     self.player.view.frame.origin.y = (result as! Array)[1] 
    } 
}