Ich muss einen Webartikel mit einem UITableView
unter dem Artikel zeigen.
Die einzige Option, die ich gefunden habe, war, den Artikel in einem UIWebView
im tableView-Header anzuzeigen.
Dazu muss ich die Höhe des WebView-Inhalts ermitteln und das Scrollen für das WebView deaktivieren.
Ich habe zwei Lösungen gefunden, um das Scrollen zu deaktivieren:
for (id subview in webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).scrollEnabled=NO;
oder in JavaScript:
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
Ich habe gehört, dass die erste Lösung von Apple verboten ist, aber ich habe keinen Beweis dafür. Wird meine Bewerbung mit dieser Lösung abgelehnt? Wenn ja, kann ich die zweite Lösung verwenden, ohne abgelehnt zu werden?
webView.scrollView.bounces = NO;
? da der Code in der ersten Zeile das Scrollen deaktiviert hat.Da diese Frage immer noch anwendbar ist, gibt es einen neuen Weg, dies zu tun! (iOS 7.0+, vielleicht auch iOS 6, nicht bestätigt)
Pass auf :)
quelle
Sie können einfach die Benutzerinteraktionseigenschaft für die Webansicht auf no setzen, dh
Es ist ziemlich einfach und funktioniert gut, danke :)
quelle
Für alle iOS-Versionen können Sie diesen Code anstelle von setScrollEnabled verwenden:
quelle
Verwende das hier
<body ontouchmove="event.preventDefault()">
quelle
SWIFT 3 Version
quelle
Ich denke das Javascript
ist bei weitem die beste Lösung.
Tatsächlich :
Dein erstes Beispiel oder das
Eine (gleiche Sache) könnte abgelehnt werden, weil sie nicht dokumentiert ist, oder Ihre App in einem weiteren iOS-Update zum Absturz bringen.
Und das
Methode funktioniert nicht mit iOS <5.
quelle
das hat es für mich sortiert
quelle
Der erste wird von Apple abgelehnt. Es ist mir erst heute Morgen passiert.
quelle
[[myWebView scrollView] setBounces: NO];
quelle
Ich glaube nicht, dass die erste Option von Apple verboten ist.
Du könntest es versuchen
Wenn Sie nicht möchten, dass Links in Ihrer UIWebView funktionieren, können Sie dies auch tun
quelle
Benutze es :
quelle
Versuche dies,
quelle
Ich habe einige
UIWebView
s in a platziertUIScrollView
und es wurde für mich nicht gescrollt, es sei denn, ich deaktiviere die Benutzerinteraktion in den Webansichten (auch mit der[[webview scrollview] setScrollEnabled:NO]
). Also habe ich dasUIWebView
s in a platziertUIView
und das hat bei mir funktioniert, aber dann funktionierten die interaktiven Links oder Divs in meinem HTML-Code inUIWebView
nicht mehr.Das einzige, was für mich funktioniert hat, ist, das
UIWebView
Innere im Inneren zu behalten,UIScrollView
damit die HTML-Interaktionen funktionieren, dasUIScrolling
aber nicht.Ich habe dann einen benutzerdefinierten Delegaten erstellt, auf den die Webansichten
window.open("http:/customEvent")
warten sollen. Dieser wird aus dem in der Webansicht enthaltenen HTML-Code aufgerufen. Ich habe auch eine JavaScript-Swipe-Erkennung hinzugefügt, die mein benutzerdefiniertes Ereignis auslöst.Wenn der Webview-Delegat dies erhält, übergebe ich eine Benachrichtigung an einen Controller, der dann dynamisch einen Bildlauf durchführt
UIScrollView
. Offensichtlich musste ich eine Logik erstellen, um zu überwachen und zur nächsten oder vorherigen Seite zu scrollen. Nicht die schönste Lösung, aber es funktioniert für mich.quelle
Versuchen Sie dies in Ihrem HTML (
<HEAD>
Tag)Das Scrollen auf Ihrer Webseite wird deaktiviert.
(funktioniert auf jeder Webseite, nicht nur auf UIWebView)
quelle
Ich musste das Scrollen deaktivieren, da das Löschen einer benutzerdefinierten Tastatur das Scrollen mit der WebView wirklich durcheinander brachte. Nichts anderes hat funktioniert und ich habe auf so etwas zurückgegriffen:
quelle
Entspricht eine UIWebview und eine UITableView in einer UIScrollview und das Festlegen der Höhe der Webview (und das Hinzufügen zur gesamten ContentSize der Scrollview) Ihren Wünschen?
quelle
quelle