如何使数组逐个显示在标签上

时间:2018-02-17 18:45:19

标签: ios arrays swift label

我试图在一个数组中单独显示一个单词,但是在我的代码中,数组中的最后一个单词显示出来。我想要的是我的标签显示Hello [wait] (一定时间内最好可以调整)World [wait] 测试 [wait] 数组

这是我的代码:

import UIKit

// Variables
let stringOfWords = "Hello World. Say Hello. Test Number One."
let stringOfWordsArray = stringOfWords.components(separatedBy: " ")

class ViewController: UIViewController {
   // Outlets
   @IBOutlet weak var labelWords: UILabel!


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        for word in stringOfWordsArray  {
            labelWords.text=(word)
        }
    }
}

我希望能够有一个调整器来显示单词出现的速度以及开始和停止按钮。如果有人能帮助我完成那个很棒的主要部分。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用Timer,这样您就可以调用开始/停止它并调整时间(以下示例为2秒):

var timer: Timer?
var wordIndex = 0

override func viewDidLoad() {
    super.viewDidLoad()
    timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(update), userInfo: nil, repeats: true)
}

@objc func update() {
    label.text = stringOfWordsArray[wordIndex]
    if wordIndex < (stringOfWordsArray.count - 1) {
        wordIndex += 1
    }
    else {
        // start again ...
        wordIndex = 0
    }
}

@IBAction func startAction(_ sender: Any) {
    timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(update), userInfo: nil, repeats: true)
}

@IBAction func stopAction(_ sender: Any) {
    // remember to invalidate and nil it when you leave view
    timer?.invalidate()
    timer = nil;
}