如何将一个字母一次打印到textview SWIFT中

时间:2015-02-15 00:03:07

标签: swift

如何打印我的变量,例如。 var Output:String = "Test"以便它一次在文本视图中打印一个字母?喜欢它被输入。  提前致谢!

3 个答案:

答案 0 :(得分:0)

这应循环遍历提供的字符串中的每个字符并以延迟

打印出来
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) {
    for char in "test" {
        dispatch_async(dispatch_get_main_queue()) { textView.text += String(char) }
        usleep(1000)
    }
}

答案 1 :(得分:0)

您可以使用具有随机间隔的计时器,如下所示:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var myTypeWriter: UITextField!
    let myText = Array("Hello World !!!")
    var myCounter = 0
    var timer:NSTimer?
    func fireTimer(){
        timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "typeLetter", userInfo: nil, repeats: true)
    }
    func typeLetter(){
        if myCounter < myText.count {
            myTypeWriter.text = myTypeWriter.text + String(myText[myCounter])
            let randomInterval = Double((arc4random_uniform(8)+1))/20
            timer?.invalidate()
            timer = NSTimer.scheduledTimerWithTimeInterval(randomInterval, target: self, selector: "typeLetter", userInfo: nil, repeats: false)
        } else {
            timer?.invalidate()
        }
        myCounter++
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        fireTimer()
        // Do any additional setup after loading the view, typically from a nib.
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

答案 2 :(得分:0)

我最近写了一篇博文,其中我创造了一个类似但不同的效果。在我的示例中,我使用UILabelNSAttributedStrings

在我的作品中,我使用了淡入淡出的动画,但如果你不想要,你就不需要这样做。

鉴于你只是逐字逐句地想要它,它将使它比我的复杂得多。

无论如何,它应该让你知道我将如何接近它。此外,除非使用实际输入UITextView,否则请勿使用。{1}}。请改用UILabel

http://www.oliverfoggin.com/birdman-and-text-animations/