質問
iOSのスクロールビュー内でWebビューを回避する技術的な理由を知っている人はいますか(Webビュー自体の内部でのスクロールを無効にしてもよいと仮定します)。
UIWebViewのAppleドキュメントを見ると、次のように記載されています。
重要: UIScrollViewオブジェクトにUIWebViewまたはUITableViewオブジェクトを埋め込まないでください。これを行うと、2つのオブジェクトのタッチイベントが混同され、誤って処理される可能性があるため、予期しない動作が発生する可能性があります。
私の教育を受けた推測
内側と外側のスクロールビューの間でタッチが混同される可能性があるため、スクロールビューを別のスクロールビュー内に配置しないように警告しているようです。
UIWebView
しかし、スクロールビューの内側に配置したいという非常に正当な理由があります。Webビューは、単なるスクロールビューではありません。UIWebView
幅広いWebコンテンツを簡単に表示できます。
それ自体の中でスクロールを許可する必要がなく、次のUIWebView
いずれかでスクロールをオフにする場合:
webView.userInteractionEnabled = NO;
また
webView.scrollView.scrollEnabled = NO;
では、このデザインに本当に問題はありますか?
これは部分的に元のインターフェースのアーティファクトであり、埋め込まれたものへの直接(および文書化された)アクセスUIWebView
を提供しなかったのではないかと思います(スクロールを簡単に無効にできるようにするため)。たぶん、Appleドキュメントのこのステートメントはその遺産ですか?UIScrollView
プロジェクトコンテキスト
私は、スクロールビュー内でいくつかのWebビューを使用して、それらの間を水平方向にスクロールできるアプリ(他の誰かが作成したもの)を管理しているので、質問します。Webコンテンツは固定されている(変更できない)と見なす必要があり、HTMLページごとに1ページのコンテンツしか表示されません。ユーザーはページ間をスクロールできる必要があるため、そのためUIWebViews
にa内の複数UIScrollView
が選択されました。これまでのところ、正常に動作している可能性があります。
ただし、ページには全画面画像が表示されるため、スクロールのパフォーマンスが問題になります。しかし、私は、スクロールビュー内のWebビューの基本的なネスト(Appleが警告している)が本当に問題の一部であるかどうかを判断しようとしています。