入力フィールド()を含むページを表示するUIWebViewがあります。
ユーザーがフィールドにタッチしてデータを入力すると、UIWebViewが上下にスクロールされ、フィールドがユーザーに表示されたままになります。まぁ、いいよ。
上にスクロールしてもかまいませんが(フォームの下にあるものはすべてキーボードで非表示になっているため)、ビューが左にスクロールされないようにしたいと思います。
この動作を防ぐ方法(htmlページのヘッダーまたはiOSコード)はありますか?
ありがとう
美しくはないが効果的:
webViewをまったくスクロールさせたくない場合は、UIWebViewのUIScrollViewDelegateを実装し、scrollViewDidScrollでcontentOffsetを0に設定できます。
aWebView.scrollView.delegate = self
func scrollViewDidScroll(scrollView: UIScrollView) {
scrollView.contentOffset = CGPointMake(0, 0)
}
スクロールを完全に防ぐ方法はわかりませんが、少しのジッターを気にしない場合は、次のハンドラーを入力フィールドに追加できます。
onfocus="setTimeout('window.scroll(0,0)',100)"
まず、を使用してキーボードの表示をキャプチャする必要がありますUIKeyboardWillShowNotification
。
次に、(UIWebviewの)UIScrollViewのcontentSize幅を画面幅に制限します。これにより、画面が水平方向にスクロールしないようになります。