У меня есть табличное представление, которое считывает информацию из массива массивов и отображает ее. В табличном представлении есть складные ячейки для подкатегорий. Кажется, я не могу понять, как заставить мой текст TableView соответствовать ячейке прототипа, которую я создал. Я создал файл .swift для ячейки с именем «autoClaimCell», идентификатором ячейки также является «autoClaimCell», а метка внутри этой ячейки называется «autoClaimCellLabel». До того, как я сделал оператор охраны, он работал нормально, потому что позволил бы мне поместить «as! AutoClaimCell» в конец оператора, который затем получил доступ к этому файлу для метки, но теперь, так как у меня есть оператор охраны, он не будет позвольте мне разместить "as! autoClaimCell" где-нибудь там.
Вот мой код:
func numberOfSections(in tableView: UITableView) -> Int {
return tableViewData.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableViewData[section].opened == true {
return tableViewData[section].sectionData.count + 1
} else {
return 1
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// let cell = tableView.dequeueReusableCell(withIdentifier: "autoClaimCell", for: indexPath) as! autoClaimCell
// cell.autoClaimCellLabel?.text = areaCategories[indexPath.row]
// return cell
let dataIndex = indexPath.row - 1
if indexPath.row == 0 {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "autoClaimCell") else {return UITableViewCell()}
cell.textLabel?.text = tableViewData[indexPath.section].title
return cell
} else {
//Use different call indentifier if needed
guard let cell = tableView.dequeueReusableCell(withIdentifier: "autoClaimCell") else {return UITableViewCell()}
cell.textLabel?.text = tableViewData[indexPath.section].sectionData[dataIndex]
return cell
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0 {
if tableViewData[indexPath.section].opened == true {
tableViewData[indexPath.section].opened = false
let sections = IndexSet.init(integer: indexPath.section)
tableView.reloadSections(sections, with: .none) // play around with animations
} else {
tableViewData[indexPath.section].opened = true
let sections = IndexSet.init(integer: indexPath.section)
tableView.reloadSections(sections, with: .none) // play around with animations
}
}
}
Кроме того, как бы мне сделать список, который отображается при расширении ячейки, в соответствии с другой прототип клетки в процессе?