2017-08-30 57 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)