Действительно ли возможно изменить размер UITableViewCell, не используя UITableViewDelegate?

Необходимо быть в состоянии проверить document.location.protocol, чтобы видеть, является ли это "http": или "https":

5
задан Sam Soffes 21 September 2009 в 17:15
поделиться

3 ответа

Вам просто нужно использовать табличное представление для управления высотой. Вы можете сообщить таблице, что ячейка была изменена, используя вызовы для удаления, а затем повторного добавления определенных ячеек, поэтому вам не нужно перезагружать всю таблицу, но высоту необходимо получить с помощью callback-функции делегата tableView: heightForRow: atIndexPath:

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

Если задуматься, Плохое табличное представление - это представление с прокруткой, которое должно управлять всеми этими отдельными ячейками и визуально удерживать их вместе - так что это действительно неприятно для ячейки, когда она становится мошеннической и начинает изменять фреймы, не позволяя представлению таблицы знать, что происходит в любом случае. Лучше позволить столу двигаться и указывать ему, что делать.

5
ответ дан 14 December 2019 в 13:41
поделиться

Нет, вы не можете установить размер ячейки без использования UITableViewDelegate . Изменение размера ячейки фактически изменяет размер ячейки, но не меняет смещения, с которыми UITableView рисует ячейки. Это приведет к перекрытиям и пробелам повсюду.

Ваш друг - tableView: heightForRowAtIndexPath: , и он должен быть быстрым . Если вы его переопределите, представление таблицы больше не сможет предполагать, что все строки имеют одинаковую высоту. И поэтому он должен запрашивать высоту всех строк каждый раз, когда выбирает ячейки для рисования.

1
ответ дан 14 December 2019 в 13:41
поделиться

Вам следует попытаться управлять фреймом свойств contentView ячеек, а не самим фреймом ячеек вот ссылка http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/occ/instp/UITableViewCell/contentView

0
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: