#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)
}
}
Он печатается следующим образом.
график пера сохранить далее