gpt4 book ai didi

ios - 延迟逐字绘制文本(定时)

转载 作者:搜寻专家 更新时间:2023-11-01 07:05:49 27 4
gpt4 key购买 nike

我正在制作一个 ios 应用程序,它是一种诗集。我想要的功能之一是定时“阅读”,因此一首诗中的单词出现的时间与我阅读时的时间相同。所以我有一个数组,里面有诗中的词,还有延迟。

现在我想遍历单词,在屏幕上绘制数字 1,等待相应的句点,绘制数字 2,等等......我的问题是是否有人有一个优雅的方法来实现这个 - 或者只是一种有效的方式;-)它比我想象的要难......

我使用 Swift 4。到目前为止,我已经在 Imageview 中绘制了文字,但后来我只得到了最终生成的图像,而且我也不想因为延迟而锁定主线程。所以我认为解决方案是以某种方式使用调度,但我无法理解。有人吗?这对于可以演示在 View 中绘制文本单词的代码非常有帮助,因此单词出现的时间指定为数字列表(毫秒或其他)。

最佳答案

这是一种方法,它使用自反方法并动画显示单词以及设置下一个单词的延迟。 display(poem:) 函数完成了所有的工作,但是在这里你有整个测试项目,只需在 Storyboard并链接它们:

class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
let poem = [("Test ", 0.6), ("my ", 0.4), ("core ", 1.0), ("just ", 0.6), ("like ", 0.4), ("be", 0.4), ("fore", 0.6)]

@IBAction func animate(_ sender: Any) {
display(poem: poem)
}

func display(poem: [(word: String, delay: TimeInterval)]) {
guard let first = poem.first else { return }

UIView.transition(with: textView,
duration: first.delay,
options: .transitionCrossDissolve,
animations: { self.textView.text.append(first.word) },
completion: nil)

DispatchQueue.main.asyncAfter(deadline: .now() + first.delay) {
self.display(poem: Array(poem.dropFirst()))
}
}
}

关于ios - 延迟逐字绘制文本(定时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com