Переключение отображения изображения в UITableViewCell

StackOverflow https://stackoverflow.com/questions/683029

  •  22-08-2019
  •  | 
  •  

Вопрос

В зависимости от результата выполнения условия я хочу отобразить UIImageView в ячейке таблицы.В противном случае отобразите UITableViewCellAccessoryCheckmark.Я бы хотел сконструировать ячейку в IB.Часть, в которой я не уверен в том, что делать с UIImageView, когда я не хочу, чтобы он отображался.Если бы я создавал все это программно, я бы добавил UIImageView по мере необходимости.Но поскольку это будет сделано в IB, UIImageView всегда будет там.Должно ли значение по умолчанию быть оставить ячейку в покое (отображение изображения), в противном случае удалить UIImageView и отобразить UITableViewCellAccessoryCheckmark?Если это будет сделано, понадобится ли мне тег в UIImageView, чтобы к нему можно было получить доступ и удалить?

Это было полезно?

Решение

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

Например.

cell.image.hidden = YES;

Когда они скрыты, у них нет накладных расходов, и хотя ваша ячейка может содержать тысячи строк, реальных ячеек будет очень мало, так что это довольно эффективное решение.Просто помните, что ячейки используются повторно, если вы вызываете [TableView dequeueReusableCellWithIdentifier] (что вам следует сделать), поэтому вам придется явно показывать / скрывать элемент управления, видимость которого могла быть изменена.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top