0

私の iOS アプリでは、UIScrollView画面全体をカバーする規則があります。これにはUIView、上部 (いくつかのヘッダー画像、ツール、およびその他のもの) と、UIWebViewいくつかの Web コンテンツ (ブログエントリおよびコメント) が含まれるさらに下の が含まれます。

Web ビューのテキスト フィールドの 1 つに焦点を合わせてキーボードを表示すると、Web ビューはスクロールして入力フィールドをキーボードの上に配置します。問題は、ヘッダーが移動せず、入力フィールドを覆っていることです。

私の質問は次のとおりです。キーボードを表示するときにスクロールするスクロールビューをコードに伝えるにはどうすればよいですか? いくつかのデフォルトの動作にフォールバックしUIWebView、入力フィールドを保持する をスクロールするようです。UIScrollView代わりに親をスクロールしたい。

.scrollEnabledでを NO に設定しようとしましたUIWebViewが、何も変わりません。Web ビューが読み込まれるたびに、 (およびmain の) 高さをそのコンテンツの高UIWebViewさに設定するため、 にはスクロール機能さえあるべきではありません。UIWebView.contentSizeUIScrollView

どうすればこれを達成できますか?または、手動でスクロールする必要がありますか?

4

3 に答える 3

0

コンテンツを上に移動するためにどちらのコンテンツもスクロールしないでください。2つのことのいずれかを行います:-

1: すべてのコンテンツをコンテナー ビューに配置し、UIView アニメーションを使用してすべてを上に移動します。これが私がすることです。

または

2: すべてを個別のスクロールビューに配置し、[scrollView setContentOffset:offset animated:YES];上に移動するために使用します。正直なところ、これは古いアプローチであり、お勧めしません

それは理にかなっていますか?

于 2013-05-28T08:46:13.423 に答える
0

参考までに

Appleのドキュメントから:

重要: UIWebView または UITableView オブジェクトを UIScrollView オブジェクトに埋め込まないでください。これを行うと、2 つのオブジェクトのタッチ イベントが混同され、誤って処理される可能性があるため、予期しない動作が発生する可能性があります。

于 2013-05-28T08:51:37.577 に答える