У меня есть UITableViewController с одной ячейкой прототипа.В ячейке есть метка и текстовое поле, а ее класс установлен на InputCell.Когда табличное представление загружается, ячейка, кажется, вышла из очереди, но отображается как пустая ячейка по умолчанию.
Я проверил следующие вещи:
- Класс TableViewController установлен в мойПодкласс TableViewController (ControlSettingsView)
- TableViewController является делегатом и источником данных TableView
- Для пользовательской ячейки установлен свой класс для моего подкласса TableViewCell (InputCell)
- Пользовательские ячейкидля идентификатора повторного использования установлено значение «input_cell», и это соответствует идентификатору, используемому в моем TableViewController.
- Убедитесь, что метка и текстовое поле находятся в представлении содержимого моих ячеек, а не в самой ячейке.
- Ограничения для представлений в моей ячейке выглядят разумными.
- Установите красный фон для ячеек, чтобы выделиться, чтобы проверить, не видны ли метка и текстовое поле, но была ли очищена ячейка должным образом.
Функция, которая перемещается к представлению моих настроек из контроллера корневого представления
func gototSettingsFor(control: EditableUIElement) {
let v = ControlSettingsView()
self.navigationController?.pushViewController(v, animated: true)
}
ControlSettingsView.swift
class ControlSettingsView: UITableViewController {
let INPUT_CELL: String = "input_cell"
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(InputCell.self, forCellReuseIdentifier: INPUT_CELL)
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch (section) {
case 0:
return 5
default:
return 0
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch (indexPath.section) {
case 0:
let cell: InputCell = tableView.dequeueReusableCell(withIdentifier: INPUT_CELL, for: indexPath) as! InputCell
return cell
default:
return tableView.dequeueReusableCell(withIdentifier: INPUT_CELL, for: indexPath)
}
}
}
InputCell.swift
class InputCell: UITableViewCell {
@IBOutlet weak var cell_input: UITextField!
@IBOutlet weak var cell_title: UILabel!
}
Я ожидаю, что 5 из моих пользовательских ячеек табличного представления будут отображаться в представлении таблицы, однакоя просто получаю 5 пустых ячеек, я вижу, что ячейки есть, потому что, если я нажму на них, они могут быть выбраны.
Я не могу понять, почему это должна быть ячейка не пользовательская, а пустаяодин.