UITableViewCell вне UITableView

Я заметил, что InterfaceBuilder имеет UITableViewCell в своей библиотеке объектов, которые я могу перетащить в представление. Интересно, есть ли смысл когда-нибудь использовать его за пределами UITableView.


person iter    schedule 05.05.2010    source источник


Ответы (3)


UITableViewCell предназначены для использования только в UITableView. Не стесняйтесь вставлять их в другое место, но вы делаете это на свой страх и риск.

person Jacob Relkin    schedule 05.05.2010
comment
Я хочу иметь широкую, узкую кнопку с заголовком и подзаголовком и аксессуар для раскрытия информации. - person iter; 05.05.2010
comment
Так что вставьте его в UITableView, если хотите. Я бы настоятельно не рекомендовал использовать UITableViewCell вне UITableView. - person Jacob Relkin; 05.05.2010
comment
это прямое, самоуверенное заявление без какого-либо обоснования, кроме серьезного (и я знаю, как пишется нет, спасибо; это даже не имеет значения) - person user102008; 26.05.2011

Я пробовал это, и да, это не работает. Что, конечно, справедливо, учитывая назначение и использование клеток.

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

Таким образом, было бы очень удобно просто поместить ячейку вверху нового представления и заполнить ее без дополнительного кода.

Что я сделал, так это загрузил ячейку из ее пера, настроил ее, а затем добавил contentView ячейки в мое новое представление. Этим достигается желаемый эффект.

person theLastNightTrain    schedule 09.06.2011
comment
Спасибо Влад. Я использовал этот подход в доставке приложений, никогда не было проблем. - person theLastNightTrain; 01.07.2011
comment
Ответ выше был отредактирован, чтобы удалить смайлик ... который наверняка должен получить какую-то награду за редактирование? :) - person theLastNightTrain; 16.11.2012
comment
Я пришел сюда, чтобы узнать, есть ли какие-то идеи. Я думаю о том, чтобы сделать снимок содержимого ячейки и добавить его в контейнер. Таким образом, я могу избежать загрузки ячейки с пера. :) - person Nuno Gonçalves; 02.03.2017
comment
@NunoGonçalves да, это тоже должно работать хорошо, захватите изображение ячейки, а затем просто отобразите его в представлении изображения. Однако я не вижу какого-либо конкретного преимущества, и нет смысла избегать загрузки ячейки из пера (она уже будет в памяти из-за представления таблицы). - person theLastNightTrain; 07.03.2017
comment
Если следующий экран может привести к изменению данных в ячейке, и они должны измениться в вашей ячейке, то загрузка их из пера и заполнение из модели означает, что они тоже могут быть активными. - person theLastNightTrain; 07.03.2017

Лучше всего заменить UITableViewCell на UIView, если вы хотите использовать его за пределами представления таблицы... вы можете попытаться подделать индикатор раскрытия информации, нарисовав его самостоятельно или используя значок

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

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

person Peter Lapisu    schedule 05.03.2019