2012-02-12 7 views
4

UITableViewを作成しました。私はその後、それぞれにいくつかの行を持ついくつかの異なるセクションを作成しました。これらの行のそれぞれに、を含むカスタムUITableViewCellを作成しました。私はUITextViewを含むUITableViewCellも持っています。なぜUITableField(UITableViewCellで)を編集するときにUITableView '自動スクロール'しませんか? (iPhone)

は、私はまた、ユーザーが以前またはを押してUITextField年代を通じて移動することができますUIKeyboardの一番上に表示されるUIToolbarを実装しています。

私がいる問題は二つある:次UITextField(またはUITextView)がファーストレスポンダになったとき、それもキーボードがあることで(表示されていることを

  1. 私はのUITableViewは非常にスクロールする必要があります表示される)。
  2. UITextField
  3. (又はUITextView)は(ボタンを使用せずに)選択されたフィールドは、キーボード上の可視になるように調整する必要があります。

多くの異なるチュートリアルを見てきましたが、いずれも問題を解決していません。あなたが提供できるどんな助けも大変に感謝されるでしょう。

ADDITIONAL INFO:

私は私のアプリは自動的に上記のすべてを行うために使用される、しかし、私は今それをやって停止しているようだと私は理解していない特定の100%ですなぜ。これが起こった理由はありますか?この行動を破壊するように私が変更した可能性のある機能やものがありますか?

+0

'UITableViewController'を' detailViewController'として 'UISplitViewController'に入れ子にすればどうでしょうか?自動スクロールを停止します。理由がまだクリアされていない、バグがあるようだ。 – jeeeyul

答えて

4

アップルからサンプルコードTaggedLocationsをチェックしてください。それは余分な操作なしで同じことをします。

キーは、ViewControllerが標準に準拠していることです。 UIViewController内のUINavigationControllerなどのコンテナのビューコントローラを持つNOTです。

+1

ねえ。あなたはこの仕事をするために具体的に準拠する必要があることを知っていますか?最近、私たちは標準のUITabbarControllerをカスタム書込みメニューと交換しました。今すぐ:私は、カスタムセル内の入力フィールドにフォーカスを設定した場合、uitableviewは適切にキーボードの上に収まるようにリサイズされず、入力ファイルはキーボードの下に止まっています。 – esbenr

+0

@esbenr adeの答えをご覧ください - あなたのUITableViewControllerのviewWillAppearメソッドをオーバーライドしていますか? – joelsand

+2

このスレッドを閉じるだけです。私は問題が何かを理解しました。あなたのViewControllerがUITableViewControllerから派生している場合(Appleの状態でなければならない)、UITableViewControllerクラスはUITextFieldDelegate、UIScrollViewDelegateなどを実装してこの動作を処理します。私のアプリケーションはUIViewControllerから派生してtableviewをビューコントローラuiview。だから私は(他の理由で)UIViewControlerから派生することを選択したので、基本的に私はUITableViewControllerの機能が不足しています。 – esbenr

-5

あなたは...テーブルビューをプログラム的に自分自身をフレーム を更新する必要があると私はそれがあなたのアプリケーションではありませんよりも、あなたが...あなたのアプリが自動的に上記のすべてを行うために使用することを100%確実な場合ことを100%確信しています。

docs..hereを確認してくださいあなたがキーボードに登録notifications..and、あなたのテーブルビューのフレームを更新する必要がありますリンク

https://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/ManageTextFieldTextViews/ManageTextFieldTextViews.html#//apple_ref/doc/uid/TP40009542-CH10-SW1

です。 そして、次と前に..どのテキストフィールドがアクティブになったのかをプログラマチックにチェックし、それに応じてフレームを設定する必要があります。

14

今は元のポスターにはまったく役に立たないかもしれませんが、これまでに一度やってから停止したような問題がある人

は、あなたが持っていないチェック:あなたのUITableViewControllerのサブクラスで

- (void)viewWillAppear:(BOOL)animated 

UITableViewControllerでviewWillAppearを使用すると、「キーボードが表示されたときに自動スクロールテーブルをスクロールする」動作が破られます。

私は、動作していたプロジェクトの古いバージョンと、作業が停止した最新のソースとを面倒に比較して見つけました。

+11

ありがとうございました!私たちは同じことに遭遇した。それはうまくいっていませんでした。あなたの答えを詳述するには、viewWillAppear:メソッドをオーバーライドし、独自のviewWillAppear:メソッドの中で[super viewWillAppear:animated]を呼び出してオートマチックスクロールを維持することができます。 – joelsand

+0

ああ、それは私が行方不明だった可能性が高い、明確化のための歓声:) – ader

+1

ありがとうございました!私はここで狂っていた!私たちはみんな知っているはずですが、[superviewWillAppear:animated]を追加してください。それが再び想定されるように動作するようにします(ジョエルとしても言います)。 –

関連する問題