2017-06-12 5 views
3

TextViewviewDidLoad()ViewControllerというファイルの内容をロードしようとしています。ユーザーがファイルからロードされた最後のコンテンツを参照してほしいので、私はhereというソリューションを試しました。iOS:テキストを下から下にスクロールすると、テキストの後ろに大きな空白がプログラムで作成されます

let bottom = textView.contentSize.height - textView.bounds.size.height 
textView.setContentOffset(CGPoint(x: 0, y: bottom), animated:true) 

テキストビューは下にスクロールしますが、再び下にスクロールすると大きな空白が作成されます。

+0

は、あなたのコントローラがtabViewcontrollerに組み込まれていますか? – KKRocks

+0

いいえ、通常のViewControllerがナビゲーションスタックにプッシュされました – sonnet

+0

この行を削除するとどうなりますか**(let bottom = textView.contentSize.height - textView.bounds.size.height textView.setContentOffset(CGPoint(x:0、y:下)、アニメーション:真) )**あなたはスクリーンショットや精巧さを共有できますか? – KKRocks

答えて

0

コンテンツオフセットを更新することで、実際にはスクロールビューのコンテンツに多くのオフセットが追加されます。ここでは

let bottom = textView.contentSize.height - textView.bounds.size.height textView.setContentOffset(CGPoint(x: 0, y: bottom), animated: true) 

これらはあなたの下部に余分なスペースを追加しています。したがって、コンテンツを最後の行に自動的にスクロールさせるには、scrollRangeToVisible関数を使用してみてください。あなたの質問であなたが最後の行にテキストビューをスクロールするために使用したことを述べている最高定格回答のように。

+0

この前にこの(scrollRangeToVisible)ソリューションを試してみましたが、これはうまくいきましたが、これで見つかった問題は、スクロールが不安定になるということでした。 setContentOffset()を使用してもスクロールが正しく行われていますが、これは問題ありません。 – sonnet

+0

scrollRangeToVisibleを使用していたときに、現在どのように下に空白が作成されていましたか? –

0

このマイナーチェンジでは、私の問題を解決:他の誰かが、これは参考となるよう

let bottom = CGPoint(x: 0, y: textView.contentSize.height - textView.frame.size.height) 
textView.setContentOffset(bottom, animated: false) 

は、私の答えを投稿します。 ありがとうございます。

関連する問題