回答編集履歴

1 修正

_Kentarou

_Kentarou score 8379

2017/01/17 23:12  投稿

`Storyboard`の`TextView`に初めから書いてある文字列を一文字づつ順に表示したい場合は、以下のコードできます。
`Storyboard`の`TextView`に初めから書いてある文字列を一文字づつ順に表示したい場合は、以下のコードできます。※ 『発生している問題』は解消していると思います。
```swift
import UIKit
class Timertext: UITextView {
   var titlestr:String!
   
   //表示文字のインデックス
   var idx = 0
   
   //処理中フラグ
   var flgRun = false
   
   override func draw(_ rect: CGRect) {
       
       let tmr = Timer.scheduledTimer(
           timeInterval: 1,
           target: self,
           selector: #selector(tickTimer(_:)),
           userInfo: nil,
           repeats: true)
       
       titlestr = self.text
       self.text = ""
       
       tmr.fire()
   }
   
   func tickTimer(_ timer: Timer) {
       
       //表示文字インデックス判定
       if idx < titlestr.characters.count {
           self.text = titlestr.substring(to: titlestr.index(titlestr.startIndex, offsetBy: idx))
           
           //表示文字のインデックスのインプリメント
           idx += 1
       } else {
           self.text = titlestr
           //タイマーの停止
           timer.invalidate()
           
           //処理中フラグOFF
           flgRun = false
       }
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る