Используйте цикл for, чтобы задать заголовки для кнопок

#arrays #swift #for-loop #button #indexpath

#массивы #swift #цикл for #кнопка #indexpath

Вопрос:

Я хочу использовать цикл for для установки заголовков для кнопки. То, что я сейчас делаю, не работает. Я думал, что использование indexPath.row работает, но это не так. Код также не является убедительным. Я бы подумал, что есть простое решение для реализации массива.

          var line = UIButton()
var pen = UIButton()
var graph = UIButton()
var save = UIButton()
var nxt = UIButton()

        let btnTitles = ["line","pen","graph","save","next"]
    var increase = 0.1
    for b in [line, pen, graph,save,nxt] {

        b.setTitle(btnTitles(IndexPath.row), for: .normal)
    }
    
 

Комментарии:

1.Что это за вещи, которые вы называете кнопками? IBOutlet UIButton объекты? UIButton объекты, которые вы создаете программно? Я не вижу этого в вашем коде.

2. Я добавил кое-что

3. пусть кнопки: [UIButtons] = [строка, перо, график, сохранить, nxt] пусть btnTitles = [«строка», «перо», «график», «сохранить», «следующий»] для i в 0.. <buttons.count { пусть button = buttons[i] пусть title = btnTitles[i] button.setTitle(title, forState:.Normal) }

4. можете ли вы написать это в качестве ответа, у меня возникли проблемы с его копированием

Ответ №1:

 let line = UIButton()
let pen = UIButton()
let graph = UIButton()
let save = UIButton()
let nxt = UIButton()

let buttons: [UIButton] = [line, pen, graph, save, nxt]
let btnTitles = ["line", "pen", "graph", "save", "next"]
for i in 0..<buttons.count {
    let button = buttons[i]
    let title = btnTitles[i]
    button.setTitle(title, for: .normal)
}

// probing code //
buttons.forEach {
    if let title = $0.titleLabel?.text {
       print(title)
    }
}
 

Он печатается следующим образом.

график пера сохранить далее