15

この方法を使う前は……。

//TextView is a UITextView 

[TextView scrollRangeToVisible:NSMakeRange([TextView length], 0)];

...プログラムでUITextViewの最後までスクロールしますが、iOS 4.0では機能していないようです。editablility を変更したり、ポイントを挿入したりせずに、プログラムで UITextView の最後までスクロールする方法はありますか (ユーザーが UITextView をタップしてキーボードを表示できる場所)。

また、ファイルの所有者を代理人として割り当てる必要がありますか? 違いはありますか?

4

5 に答える 5

37

UITextView には length プロパティがありません。次のコードは、私の環境ではうまく機能します。

[TextView scrollRangeToVisible:NSMakeRange([TextView.text length], 0)];
于 2011-02-24T06:00:41.993 に答える
6

答えは私にはうまくいきませんでしたが、TableView に使用するものに従うと完璧に機能します。UITextView の名前が textView であることを確認してください。

if (textView.contentSize.height > textView.frame.size.height)
{
    CGPoint offset = CGPointMake(0, textView.contentSize.height - textView.frame.size.height);
    [self.textView setContentOffset:offset animated:YES];
}
于 2012-11-14T13:08:02.320 に答える
4

IOS8 では、ensureLayoutForTextContainer を呼び出すと、このソリューションが機能するようです。これを追跡するのに 1 時間近くかかりました。

    logObject.layoutManager.ensureLayoutForTextContainer(logObject.textContainer)

    logObject.setContentOffset(CGPointMake(0.0, logObject.contentSize.height), animated:false)
于 2014-10-13T22:16:25.550 に答える
-1

これは私が使用するものであり、正常に機能します。shouldScrollTextToBottomは、呼び出しのビューによって設定されます(呼び出し元のスタックの1つ下のビューコントローラー)

(void)viewDidAppear:(BOOL)animated 
{ // scroll to bottom if required
  if(shouldScrollTextToBottom)
    [txtMyTextView scrollRectToVisible:CGRectMake(0, 0, txtMyTextView.frame.size.width, txtMyTextView.frame.size.height * 6) animated:YES];  
}

6は任意の大きな数値であり、UITextViewの高さの倍数である必要があります。値が5の場合、ビューが最下部までスクロールしないことがわかりました。

于 2012-11-17T06:24:38.893 に答える