2017-08-30 61 views
0

我是新來的Swift,我試圖改變Start Developing iOS Apps (Swift)如何更好地理解它。我創建了這個Main.storyboard一個簡單的單一視圖的應用程序:拆分inputTextField.text和時間結果顯示

Screenshot

ViewController.swift

import UIKit 

class ViewController: UIViewController { 
    @IBOutlet weak var inputTextField: UITextField! 
    @IBOutlet weak var pauseHorizontalSlider: UISlider! 
    @IBOutlet weak var outputLabel: UILabel! 

    @IBAction func displaySplittedString(_ sender: UIButton) { 
     outputLabel.text = inputTextField.text 
    } 
} 

我如何分割字符串inputTextField.text到它的人物和outputLabel.text顯示x毫秒每個字符? x的值爲pauseHorizontalSlider,其最小值爲100,最大值爲1000?

+0

你到目前爲止嘗試過什麼?看着大中央調度,更具體的方法,讓你可以在你的選擇 – jrisberg

+0

線程的延遲後運行的代碼塊這裏有幾個完全無關的問題「後派遣」:拆分文本成獨立的字符,並每隔一段時間顯示一個字符。我會將問題分解成儘可能小的部分,研究它們,如果遇到特定問題,請在此提出問題。 – Connor

+0

對於第一個問題,您可以使用inputTextField.text?.characters,然後將其轉換爲數組。 – antonio081014

回答

1

Sg。像這樣:

func show(string: String, milliseconds: Int, index: Int = 0) { 
    DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(milliseconds)) { 
     label.text = String(string[index]) 
     if index < string.characters.count - 1 { 
      show(string: string, milliseconds: milliseconds, index: index + 1) 
     } 
    } 
} 

let stringArray = Array(inputTextField.text!.characters) 
show(string: stringArray, milliseconds: 500)