Пользовательское повторное использование / удаление ячеек таблицы

Я знаю, что подобные проблемы были опубликованы ранее, но я не могу найти решение для них в них, поэтому, пожалуйста, потерпите меня...

У меня есть таблица с пользовательской ячейкой таблицы в xcode. Ячейка в настоящее время является не чем иным, как меткой:

SiteFileCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.fileNameLabel.text = [self.listDir.filesInfo objectAtIndex:indexPath.row];

Это прекрасно работает. По сути, я делаю структуру детализации каталога. Когда я выбираю ячейку, она переходит на следующий уровень, помещая новый вид таблицы в стек контроллера навигации и перезагружая все ячейки таблицы.

На этом этапе я вижу часто сообщаемую ошибку:

невозможно удалить из очереди ячейку с идентификатором Cell - необходимо зарегистрировать перо или класс для идентификатора или подключить ячейку-прототип в раскадровке

Поэтому после исследования я вижу, что мне следует зарегистрировать тип:

[self.tableView registerClass:[SiteFileCell class] forCellReuseIdentifier:@"FileCell"];

Если я это сделаю, то все работает хорошо, но ни одна из ячеек вообще не отображает никакой метки!

Я видел некоторые ссылки на то, что, возможно, требуется специальный код в методе initWithStyle класса ячейки, но я не могу понять, что именно потребуется, поэтому кто-то может дать мне немного больше указателя, пожалуйста?

2 ответа

Решение

Вместо регистрации класса зарегистрируйте перо. Это перо, где вы спроектировали подкласс ячейки табличного представления. Он содержит только один объект верхнего уровня, ячейку, и эта ячейка была обозначена как SiteFileCell. Престо, все будет просто работать.

Смотрите полное объяснение (с загружаемым кодом) в моей книге:

http://www.apeth.com/iOSBook/ch21.html

Смотрите esp. подраздел "Проектирование клетки в кончике".

Если вы используете XIB для ячейки, вы можете установить идентификатор только в файле XIB.

Другие вопросы по тегам