2017-06-24 15 views

答えて

0

scrollRangeToVisibleを使用してください。

遊び場例:

import UIKit 
import PlaygroundSupport 

func scrollTextViewToBottom(_ textView: UITextView) { 
    if(textView.text.characters.count > 0) { 
     guard let text = textView.text else { 
      return 
     } 
     let bottom = NSRange(location: text.characters.count - 1, length: 1) 
     textView.scrollRangeToVisible(bottom) 
    } 
} 

var textView = UITextView(frame: CGRect(x: 0, y: 0, width: 200, height: 300)) 
textView.text = "start long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts long texts end" 

PlaygroundPage.current.liveView = textView 

scrollTextViewToBottom(textView) 
0

あなたがUIScrollViewの下(UITextViewUIScrollViewのサブクラスである)にスクロールできる2つの方法があります。

手動オフセットコンテンツ(カスタムアニメーションを使用することができます)アニメーション:

let textView = UITextView() 

UIView.animate(withDuration: 9) { 
    let contentSize = textView.contentSize 
    let contentInset = textView.contentInset 
    let textViewBounds = textView.bounds 
    let newContentOffset = CGPoint(
     x: contentSize.width + contentInset.right - textViewBounds.width, 
     y: contentSize.height + contentInset.bottom - textViewBounds.height 
    ) 
    textView.contentOffset = newContentOffset 
} 

それともscrollRectToVisible(_:animated:)方法(簡単にはなくビルトイン使用したアニメーション)を使用します。

let textView = UITextView() 

let contentSize = textView.contentSize 
let contentInset = textView.contentInset 
let bottomRightPosition = CGPoint(
    x: contentSize.width + contentInset.right, 
    y: contentSize.height + contentInset.bottom 
) 
textView.scrollRectToVisible(CGRect(origin: bottomRightPosition, size: .zero), animated: true) 

これらの両方を例文は、textViewの右下の点が表示されるまでスクロールされます(通常、textViewは水平方向にスクロールしないので、スクロールするのと同じです)。

関連する問題