下面的代码允许我在UITextView上创建一个打字效果,但我想知道如何在打印新字符串时取消正在运行的线程
所以,如果我有两个字符串
var a = "aaaaaa"
var b = "bbbbbb"
并且字符串a中途打印“aaa”它停止然后继续“bbbbbb”,因为此时我的代码给了我类似“aaababababbb”
extension UITextView {
public func typewrite(text: String, timebetweenletters: TimeInterval, fontsize: Float) {
self.font = UIFont(name: "HelveticaNeue-Light", size: CGFloat(fontsize))
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async {
Helper.write(text)
var writing = Helper.read()
for (_,caracter) in text.characters.enumerated() {
DispatchQueue.main.async {
self.text = self.text! + String(caracter)
}
Thread.sleep(forTimeInterval: timebetweenletters)
}
}
}
}