2016-09-28 13 views
0

には、各セルにUITextViewsがあります。ユーザーがUITextViewを編集しているセルをテーブルビューの上部に移動したいとします。キーボードが表示されたときにスクロールテーブルの行が上に移動BUG

これは、簡単にすることによって実現されています。それを検索するときに、私は、私が何かを見つけることができません非常に奇妙な問題を、持っているしかし

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0); 

contentInsetをどのような方法で設定しても、キーボードが画面上でアニメーションを終了しなくなるまで、セルは上に移動しません。キーボードアニメーションがある種の優先順位を持っているかのようです。

調査したところ、contentOffsetを同時に設定すると、実際にキーボードがアニメーション化を完了する前にセルが上に移動することがわかりました。

誰かがこの動作を私に説明したり、何が起こっているのか説明できますか?

ありがとうございます!あなたがUITextfieldまたはUITextview意志はあなたがのUITableView方法に

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0); 
tableView.scrollToRowAtIndexPath(NSIndexPath, atScrollPosition: UITableViewScrollPosition, animated: Bool) 

を使用することができますし、トップにスクロールすることができ、その時点でメソッド呼び出しを編集し始めた

答えて

0

+0

私が書いたように、それは私がそれを呼び出すデリゲートメソッドに関係なく機能しません。それでもキーボードが現れるのを待つ。 –

0

このようなscenerioのIQKeyboardManager Podをインストールするのに最適な方法で、UITextViewをクリックするとテーブルビューが自動的にスクロールされます。何も書き込む必要はありません。

+2

しかし、何が起こっているのか理解したい。第三者のライブラリをインストールしない –

0

UITableViewViewControllerを使用しています。しかし、最良の方法を実現するには、UITableViewControllerを使用することです。 ユーザーがデータを入力すると、自動的に上にスクロールします(上にスクロールしてキーボードと編集テキストフィールドにフォーカス)。

+0

メインのUIViewを持つなど、UIViewControllerの機能が必要です –

+0

必要な機能...この回答を見てくださいhttp://stackoverflow.com/questions/1126726/how-to-make-a-uitextfield-move-up-when-keyboard-is-present?rq=1 –

-1

キーボード通知UIKeyboardWillShowNotificationとUIKeyboardWillHideNotificationを確認して、コードをセレクタメソッドに入れてみてください。

関連する問題