2017-08-30 3 views
0

私はSwiftを初めて使っています。私はStart Developing iOS Apps (Swift)の変更方法を改善しようとしています。split inputTextField.textと結果の表示に時間がかかる

Screenshot

そしてこのViewController.swift

私は outputLabel.textにその文字に文字列 inputTextField.textを分割し、xミリ秒のための各文字を表示することができますどのように
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 
    } 
} 

私はこのMain.storyboardとシンプルな単一のビューアプリケーションを作成しました? xの値がpauseHorizontalSliderであり、最小値が100で最大値が1000?

+0

これまでに何を試みましたか?グランドセントラルディスパッチ、より具体的には、あなたが選択したスレッドの遅延の後でコードのブロックを実行できるようにする "ディスパッチ"の方法を調べてください。 – jrisberg

+0

ここには全く関係のないいくつかの問題があります。 1文字ずつ間隔を置いて表示することができる。私は問題をできるだけ小さなものに分解し、研究し、特定の問題にぶつかったらここで質問します。 – Connor

+0

最初の質問では、inputTextField.text?.charactersを使用して配列に変換できます。 – antonio081014

答えて

1

g。このように:

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) 
関連する問題