【发布时间】:2016-03-05 21:27:27
【问题描述】:
这是一个打字动画,它以固定的时间间隔将 Array 中的字符添加到文本字段的文本中:
@IBOutlet weak var textFieldMain: UITextField!
var myText = Array("Hi! I'm Cesare.".characters)
var myString = "Hi! I'm Cesare."
var typingAnimationCounter = 0
var typingAnimationTimer: NSTimer?
func fireTimer() {
typingAnimationTimer = NSTimer.scheduledTimerWithTimeInterval(0.05, target: self, selector: "typeLetter", userInfo: nil, repeats: true)
}
func typeLetter() {
if typingAnimationCounter < myText.count {
textFieldMain.text = textFieldMain.text! + String(myText[typingAnimationCounter])
typingAnimationTimer?.invalidate()
typingAnimationTimer = NSTimer.scheduledTimerWithTimeInterval(0.15, target: self, selector: "typeLetter", userInfo: nil, repeats: false)
} else {
typingAnimationTimer?.invalidate()
}
typingAnimationCounter++
}
我想现在删除 textField 的字符(就像它是一个打字动画,但是通过删除字符)。不过,我不知道怎么做。
func fireDeletionTimer() {
typingAnimationTimer = NSTimer.scheduledTimerWithTimeInterval(0.45, target: self, selector: "deleteLetter", userInfo: nil, repeats: true)
}
func deleteLetter() {
if typingAnimationCounter < myText.count - 1 {
let index = myString.characters.count - typingAnimationCounter - 1
textFieldMain.text = myString.stringByReplacingOccurrencesOfString(String(myText[index]), withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
typingAnimationTimer?.invalidate()
typingAnimationTimer = NSTimer.scheduledTimerWithTimeInterval(0.45, target: self, selector: "deleteLetter", userInfo: nil, repeats: false)
} else {
typingAnimationTimer?.invalidate()
}
typingAnimationCounter++
}
我想用空字符串替换每个字符,但它不起作用(替换字符串的随机字母)。如何修复我的代码?
【问题讨论】: