我正在尝试在 textView
中显示字母,一次一个,并且有一个延迟,但我无法获得没错。
我想让它看起来像是有人在打字。这是我当前的代码:
let delay = 2.0 * Double(NSEC_PER_SEC)
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
let localmessage = message + "\n"
for letter in localmessage.characters {
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.textView.text = self.textView.text + String(letter)
})
}
最佳答案
您使用的是相同的 dispatchTime,因此所有字符都将同时显示。您需要在 for 循环中增加 dispatchTime 以一次显示一个字符。
像这样尝试:
let localmessage = message + "\n"
var myInt = 1
for letter in localmessage.characters {
let delay = 2.0 * Double(NSEC_PER_SEC) * Double(myInt)
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.textView.text = self.textView.text + String(letter)
})
myInt = myInt + 1
}
关于ios - 延迟显示一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666475/