Переключение отображения изображения в UITableViewCell
-
22-08-2019 - |
Вопрос
В зависимости от результата выполнения условия я хочу отобразить UIImageView в ячейке таблицы.В противном случае отобразите UITableViewCellAccessoryCheckmark.Я бы хотел сконструировать ячейку в IB.Часть, в которой я не уверен в том, что делать с UIImageView, когда я не хочу, чтобы он отображался.Если бы я создавал все это программно, я бы добавил UIImageView по мере необходимости.Но поскольку это будет сделано в IB, UIImageView всегда будет там.Должно ли значение по умолчанию быть оставить ячейку в покое (отображение изображения), в противном случае удалить UIImageView и отобразить UITableViewCellAccessoryCheckmark?Если это будет сделано, понадобится ли мне тег в UIImageView, чтобы к нему можно было получить доступ и удалить?
Решение
Вы можете легко управлять видимостью любого элемента управления, включая UIImageView.Если вы хотите создавать что-то в IB, то одним из решений является добавление необходимых вам элементов управления, предоставление их в качестве свойств, а затем скрытие тех, которые вам не нужны для данной ячейки.
Например.
cell.image.hidden = YES;
Когда они скрыты, у них нет накладных расходов, и хотя ваша ячейка может содержать тысячи строк, реальных ячеек будет очень мало, так что это довольно эффективное решение.Просто помните, что ячейки используются повторно, если вы вызываете [TableView dequeueReusableCellWithIdentifier] (что вам следует сделать), поэтому вам придется явно показывать / скрывать элемент управления, видимость которого могла быть изменена.
Альтернативой является наличие ячеек с изображениями и без них и выбор правильного варианта при добавлении данных в вашу таблицу.Однако для похожих ячеек управление двумя похожими, но незначительно отличающимися активами, вероятно, было бы непростой задачей.