Как показать вид изображения, только если объект модели содержит URL-адрес изображения - PullRequest
1 голос
/ 07 июня 2019

Итак, я создаю своего рода фейсбук-ленту и извлекаю текст, URL-адрес для изображений / видео, имя пользователя и т. Д. Созданная мной ячейка имеет вид изображения, вид текста и метку. Я размер ячейки в соответствии с размером содержимого просмотра текста.

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

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

Хотелось бы получить немного информации о том, как это можно сделать.

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

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

И убедитесь, что вы реализовали оба метода:

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100; // Put estimated height
}

И еще один,

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}
0 голосов
/ 07 июня 2019

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

Когда один элемент UIStackView скрыт, он адаптирует его размер. Если вы поместите ограничения в вид стека в ячейку, ячейка будет меньше / больше в зависимости от того, будет ли отображаться изображение. Вам просто нужно работать с ограничениями.

Кроме того, используя UIStackView или нет, не забудьте указать в вашем tableView, что размер ячейки будет динамическим, выполнив:

self.tableView.rowHeight = UITableViewAutomaticDimension
...