Существует два типа ячеек табличных представлений, предоставляемых вам через раскадровку: динамические прототипы и статические ячейки.
1. Динамические прототипы
Из названия этот тип ячейки генерируется динамически. Они контролируются вашим кодом, а не раскадровкой. С помощью делегата табличного представления и источника данных вы можете программно указать количество ячеек, высоту ячеек, прототип ячеек.
Когда вы перетаскиваете ячейку в табличное представление, вы объявляете прототип ячейки. Затем вы можете создать любое количество ячеек на основе этого прототипа и программно добавить их в табличное представление с помощью cellForRow
метода. Преимущество этого состоит в том, что вам нужно только определить 1 прототип, а не создавать каждую ячейку со всеми видами, добавленными к ним самостоятельно (см. Статическую ячейку).
Поэтому в этом случае вы не можете подключить элементы пользовательского интерфейса прототипа ячейки к вашему контроллеру представления. У вас будет инициирован только один объект контроллера представления, но у вас может быть много объектов ячейки, инициированных и добавленных в ваше табличное представление. Не имеет смысла подключать прототип ячейки к контроллеру представления, потому что вы не можете управлять несколькими ячейками с помощью одного соединения контроллера представления. И вы получите ошибку, если вы это сделаете.
Чтобы решить эту проблему, вам нужно подключить вашу метку прототипа к UITableViewCell
объекту. A UITableViewCell
также является прототипом ячеек, и вы можете инициировать столько объектов ячеек, сколько хотите, каждый из которых затем подключается к представлению, сгенерированному из вашего прототипа ячейки таблицы раскадровки.
Наконец, в вашем cellForRow
методе создайте пользовательскую ячейку из UITableViewCell
класса и делайте забавные вещи с меткой
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier") as! YourCell
cell.label.text = "it works!"
return cell
}
2. Статические ячейки
С другой стороны, статические ячейки действительно настроены через раскадровку. Вы должны перетащить элементы пользовательского интерфейса в каждую ячейку, чтобы создать их. Вы будете управлять номерами ячеек, высотой и т. Д. Из раскадровки. В этом случае вы увидите табличное представление, точно такое же с вашего телефона, по сравнению с тем, что вы создали из раскадровки. Статические ячейки чаще используются для настройки страницы, которые меняются не сильно.
Чтобы управлять элементами пользовательского интерфейса для статической ячейки, вам действительно необходимо подключить их непосредственно к контроллеру представления и настроить их.