2016-08-18 4 views
0

Я пытаюсь создать базовое приложение для умножения, которое будет отображать ваши таблицы в 1 раз до десяти раз в зависимости от того, какое число вы вводите в текстовое поле.Показать массив из 10 Ints в метке

Когда я запускаю свой код, моя метка создает только одну строку, которая является результатом вычисления последнего умножения. Например, 10 раз 8 равно 80, остальные 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)") 

перезаписывается текст лейбла каждый раз. Это не перезаписывает текст ярлыка и добавляет к нему новый текст.

Смежные вопросы