2016-08-18 10 views
0

テキストフィールドに入力する数値に応じて1倍のテーブルを最大10倍のテーブルに表示する基本的な乗算アプリケーションを構築しようとしています。ラベルに10インチの配列を表示

私のコードを実行すると、私のラベルは計算された最後の乗算の結果である1行だけを生成します。たとえば、10回8は80、もう1つは9に追加されません。この後もテーブル全体に正しい答えが表示されます。ここに私のコード

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var numberTextField: UITextField! 

    @IBOutlet weak var tablesLabel: UILabel! 

    var tablesArray = [Int]() 

    var number = 0 

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

    @IBAction func tablesButtonTapped(_ sender: AnyObject) { 

     if numberTextField.text == "" { 
      print("Sorry you must enter a number between 1 and 10") 
     } else { 
      tablesArray = [] 
      tablesLabel.text = "" 
      multiplyBy(number: Int(numberTextField.text!)!) 
      numberTextField.text = "" 
     } 
    } 
    func multiplyBy(number: Int) { 

     for index in 1...10 { 
      tablesArray.append(index * number) 
      print(tablesArray) 
      tablesLabel.text = ("\(index) times \(number) is \(tablesArray)") 
     } 
     tablesLabel.isHidden = false 
    } 
} 
+0

最後までループしているので、配列に保存してください –

答えて

0

変更

tablesLabel.text = ("\(index) times \(number) is \(tablesArray)") 

tablesLabel.text = ("\(tablesLabel.text ?? "") \(index) times \(number) is \(tablesArray)") 

にあるあなたは、ラベルのテキストたびに上書きされます。これは、ラベルのテキストを上書きせず、新しいテキストを追加します。

関連する問題