0

UITextViewユーザーが各行を入力したときにプログラムでスクロールするにはどうすればよいですか。

以下に示すように、キーパッドがある時点でそれを非表示にするため、私の textView には必要です。 ここに画像の説明を入力

私はiPhone開発の初心者なので、たくさん検索しましたが、適切な解決策が見つかりませんでした。あなたの貴重な助けが必要です。

4

3 に答える 3

4

キーボードを開くときは、テキストビューのフレームを調整する必要があります。この場合、キーボードの高さだけフレームの高さを減らします。

これら 2 つのデリゲート メソッドの適切なコードを実装します。

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
    CGRect frm = textView.frame;
    frm.height -= KEY_BOARD_HEIGHT;
    textView.frame = frm;
}
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;
{
    CGRect frm = textView.frame;
    frm.height += KEY_BOARD_HEIGHT;
    textView.frame = frm;
}
于 2013-03-19T10:05:59.473 に答える
1

スクロール位置の変数を取る::int scrollY;

TextViewのコード::

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
    {
        scrollY += 10;
        scrMain.contentOffset = CGPointMake(0, scrollY);
    }
    return YES;
}

次に、ユーザーがキーボードから離れると、再度 0 に設定し、元の位置にスクロールします。

scrollY = 0;
scrMain.contentOffset = CGPointMake(0, 0);

うまくいけば、それはあなたを助けるかもしれません.

ありがとう。

于 2013-03-19T10:29:47.337 に答える
0

UITextViewテキストを入力するときにテキストを自動的にスクロールし、UITextViewフレームをキーボードの上に変更するだけで、キーボードのリセットUITextViewフレームを閉じるときにのみ

- (void)textViewDidBeginEditing:(UITextView *)textView
{
   //set frame for text view here
}
- (void)textViewDidEndEditing:(UITextView *)textView
{
  //set frame for text view here
}
于 2013-03-19T10:14:27.583 に答える