Я хотел бы поместить два разных tableViewCells
в один и тот же tableView
, чтобы они всегда появлялись в паре. Первый tableViewCell
должен отображать время начала и окончания, которые настраиваются пользователем. (возможно, datePicker
) Второй tableViewCell
должен отображать textField
, который также можно редактировать. У обоих tableViewCells
должна быть маленькая кнопка, которую можно либо проверить, либо нет. Я хотел бы хранить эти данные (время, текст, статус кнопки) где-нибудь.
Я установил структуру как dataType
для обеих ячеек и создал массив. Я также настроил cellForRowAt
, но при запуске приложения выдает ошибку.
Чтобы создать тип данных:
struct ScheduleCell{
var id: Int
var buttonState: Bool
var text: String
var time01: String
var time02: String
}
Место для хранения данных:
var scheduleCellEntries: [ScheduleCell]! = [ScheduleCell(id: 2, buttonState: false, text: "Test", time01: "12:30", time02: "12:20"), ScheduleCell(id: 2, buttonState: false, text: "Test", time01: "12:30", time02: "12:20"), ScheduleCell(id: 2, buttonState: false, text: "Test", time01: "12:30", time02: "12:20"), ScheduleCell(id: 2, buttonState: false, text: "Test", time01: "12:30", time02: "12:20")]
Назначение количества строк:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var count: Int?
if tableView == scheduleTableView{
count = scheduleCellEntries.count * 2
}
return count!
}
Загрузка данных в ячейки:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView == scheduleTableView {
if indexPath.row % 2 != 0{
let cell = tableView.dequeueReusableCell(withIdentifier: "scheduleCell", for: indexPath) as! scheduleTableViewCell
cell.scheduleTextField.text = scheduleCellEntries[indexPath.row].text
return cell
}else{
let cell = tableView.dequeueReusableCell(withIdentifier: "scheduleDateCell", for: indexPath) as! ScheduleDateTableViewCell
return cell
}
Когда я запускаю приложение, я получаю следующую ошибку Thread 1: Fatal error: Index out of range
!