この
// Calculate number of lines according to font
var font = UIFont.boldSystemFont(ofSize: CGFloat(11.0))
var size: CGSize = string.size(with: font, constrainedToSize: textView.frame.size, lineBreakMode: .wordWrap) // default mode
var numberOfLines: Float = size.height/font.lineHeight
// 1 sec per third line
let duration = Int(numberOfLines/3)
UIView.animate(withDuration: TimeInterval(duration)) {
self.textView.contentOffset = CGPoint(x: 0, y: 225)
}
それとも、拡張子
extension UITextView {
func numberOfLines() -> Int {
let layoutManager = self.layoutManager
let numberOfGlyphs = layoutManager.numberOfGlyphs
var lineRange: NSRange = NSMakeRange(0, 1)
var index = 0
var numberOfLines = 0
while index < numberOfGlyphs {
layoutManager.lineFragmentRectForGlyphAtIndex(
index, effectiveRange: &lineRange
)
index = NSMaxRange(lineRange)
numberOfLines += 1
}
return numberOfLines
}
}
を使用して、期間に
// 1 sec per third line
let duration = Int(textView.numberOfLines()/3)
UIView.animate(withDuration: TimeInterval(duration)) {
self.textView.contentOffset = CGPoint(x: 0, y: 225)
}
を計算することができてみてください