2011-10-20 12 views
1

私はセットアップいくつかのテキストフィールドとそれらがキーボードによって隠されている場合のテキストビューを上に移動スクロールビューを成功しました。しかし、テキストビューが最初の行を超えるテキストを受け取ったとき、次の行は明らかにキーボードによって隠されています。だから、私は新しい行がUITextviewインスタンスから/に追加/削除されるたびにビューを/上下に移動するためのトリックを探しています。助けるためUITextViewインスタンスに新しい行が追加されると、ビューをスクロールする方法はありますか?

Thxを、

ステファン

答えて

1

あなたは、あなたのUITextViewのデリゲートに

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

メソッドを実装textviewsテキスト内の改行の数を数えることができる、あなたが持ってどこまで計算しますスクロール、スクロールします。 (このメソッドは、ユーザーが文字をタイプするたびに呼び出されます。)

別の方法としては、簡単にルートを行くとUITextViewあなたの全体を表示するのに十分スクロールすることができます。ユーザーがテキストビューに収まる以上にタイプすると、テキストビューは自動的にスクロールを開始します。

1

使用scrollRectToVisible:animated:またはsetContentOffset:animated: - あなたのケースでは、最初は、のように:

[scrollView scrollRectToVisible:textField.frame animated:YES]; 

また、目に見えるにあなたのテキストフィールドの内容をスクロールする必要があるかもしれませんが、私はそれが自動的に行われるべきだと思います。

0

だから、以前の回答をコンパイルする場合:

だけ<UITextViewDelegate>としてあなたの自己としてtextView.delegateとあなたのviewControllerを設定し、:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
    [textView scrollRangeToVisible:range]; 
    return YES; 
} 
関連する問題