2012-01-20 7 views
0

私は、テーブルビューとキーボードを含む問題を抱えています。私は自分のプログラムを開発して、テーブルビューを選択すると、テーブルビューをスクロールしてキーボードを越えて見えるようにし、テキストフィールドを表示したままにするために必要なスクロール量を計算してから遠くのフレームを移動する変換。さらにUITableViewを拡張する

UIViewはまだアクティブなので、小さなビューでスクロールし続け、他のテキストエントリを選択して変更することができます。

問題は、私のリストの一番下の項目が見えないということです。スクロールしないという「許容差」をキーボードの高さと同じにして、キーボードを消してからデフォルトに戻したいと思っています。

ありがとうございました。

+0

あなたの質問は何ですか?あなたはそれがすべて理解されたように私に見えます。 – fzwo

+0

私の質問は、スクロール許容差を増やす方法です。私のスクロールビューで600ピクセルのコンテンツと高さ146のキーボードがあり、ビューの上部から何かを選択してから、ウィンドウをスクロールして(キーボードをまだ上にして)、最初にキーボードを消さずにコンテンツの最後の146ピクセル。 – VerticalEvent

答えて

1

が登場し、姿を消したとき、あなたはまた、良好に見えるかもしれません良い方法はただのtableViewをスクロールしないことですテーブルビューのフレームを変更する心配がありませんが、その代わりに、キーボードの高さだけtableView全体(そしておそらくその周囲のビュー)を動かしてください(もちろん、解雇時に再び下に移動してください)。

myTableView.center = CGPointMake(myTableView.center.x, myTableView.center.y - keyboardHeight); //and vice versa for keyboard dismissal 

これが動作すれば、アニメーション化することができます。

通常よりもtableViewをスクロールできるようにしたい場合は、スクロールする前にcontentSizeプロパティを設定してみてください。 UITableViewUIScrollViewのサブクラスなので、Appleが何らかの形でその動作を上書きしなかった場合、これはうまくいくはずです。

myTableView.contentSize = CGSizeMake(myTableView.contentSize.width, myTableView.contentSize.height + keyboardHeight); //and vice versa when keyboard is dismissed 
+0

これは私のために働いていましたが、私が与えられたビューは標準的なビューでしたので、コンテンツサイズを調整できるスクロールビューを見つけるためにサブビューを繰り返していきました。 – VerticalEvent

+0

しかし、注意してください - アップルは私たちがそのようなクラスでぶつかって好きではありません。私はちょうどサブビューの列挙を必要としない方法を思い出しました。必要なサイズのテーブルにフッタービューを追加します。 – fzwo

1

なぜテーブルのフレームを変更しますか?あなただけのUITableViewにscrollToRowAtIndexPath:atScrollPosition:animated:を使用することができますし、キーボードが

+0

私が集めることから、それを行う標準的な方法は、フレームの底をそれほど移動して移動させるのに必要な距離を計算することです。使用されているデリゲートは、他の領域にも使用され、スクロールビューが発生したときにのみ使用されるため、一貫性を維持したいと考えました。 また、数字のキーパッドを閉じるために「完了」ボタンが付いたツールバーオーバーレイを使用するiPhoneのキーボードが数字に表示される場合は、scrollToRowが機能しないことがあります。 – VerticalEvent

関連する問題