Warum sollte ein UIWebView nicht in einem UIScrollView platziert werden?
Kennt jemand technische Gründe, um Webansichten in Bildlaufansichten unter iOS zu vermeiden? (Angenommen, Sie möchten das Scrollen in den Webansichten selbst deaktivieren.)
Wenn du schaustbei den Apple-Dokumenten für UIWebViewSie sagen:
Wichtig: Sie sollten UIWebView- oder UITableView-Objekte nicht in UIScrollView-Objekte einbetten. In diesem Fall kann es zu unerwartetem Verhalten kommen, da Berührungsereignisse für die beiden Objekte verwechselt und falsch verarbeitet werden können.
Meine VermutungMöglicherweise warnen sie Sie davor, eine Bildlaufansicht in eine andere Bildlaufansicht einzufügen, da Berührungen zwischen der inneren und der äußeren Bildlaufansicht verwechselt werden können.
Es gibt jedoch einen sehr triftigen Grund, eineUIWebView
innerhalb einer Scroll-Ansicht. Webansichten sind nichtgerade Scroll-Ansichten.UIWebView
kann leicht eine breite Palette von anzeigenNetz Inhalt.
Wenn Sie nicht scrollen müsseninnerhalb dasUIWebView
selbst, und Sie deaktivieren das Scrollen entweder mit:
webView.userInteractionEnabled = NO;
oder
webView.scrollView.scrollEnabled = NO;
Gibt es dann wirklich ein Problem mit diesem Design?
Ich frage mich, ob dies teilweise ein Artefakt des Originals istUIWebView
Schnittstelle, wo es nicht gabdirekter (und dokumentierter) Zugriff zu seinem eingebettetenUIScrollView
(um das Scrollen leicht deaktivieren zu können). Vielleicht ist diese Aussage in den Apple-Dokumenten ein Vermächtnis davon?
Ich frage, weil ich eine (von jemand anderem geschriebene) App verwalte, die eine Handvoll Webansichten in einer Bildlaufansicht verwendet, mit der horizontal zwischen ihnen gewechselt werden kann. Der Webinhalt muss als fest (nicht änderbar) betrachtet werden und zeigt nur eine Inhaltsseite pro HTML-Seite an. Der Benutzer muss in der Lage sein, zwischen Seiten zu scrollen, also mehrereUIWebViews
in einemUIScrollView
wurden dafür ausgewählt. Bisher scheint es sokann richtig arbeiten.
Die Seiten zeigen jedoch Vollbildbilder, und die Bildlaufleistung ist ein Problem. Aber ich versuche herauszufinden, ob die grundlegende Verschachtelung von Webansichten in Bildlaufansichten (vor der Apple warnt) wirklich Teil des Problems ist.