У меня есть UITableViewCell
, который реализован с использованием раскадровки, которая выглядит так:
Вот как должна выглядеть ячейка без изображения:
Я возился с ограничениями и ломал голову, пытаясь понять это, но мне не повезло. У меня довольно хорошее понимание ограничений и того, как добавить их программно, но мне не повезло с этой конкретной проблемой, и я чувствую, что просто добавляю ограничения макета в ячейку волей-неволей без логического мыслительного процесса. Ячейка представляет собой публикацию в ленте новостей, которая может иметь или не иметь изображение в основном представлении изображения вверху и должна вести себя следующим образом. Если в ячейке нет изображения, нижняя полоса с подсчетом лайков и комментариев перемещается вверх, чтобы выровняться с верхней частью ячейки. Я добился такого поведения, установив ограничение, которое удерживало меньший вид изображения, заголовок сообщения, время публикации и содержимое публикации на заданном расстоянии от нижней части ячейки. Этот подход работает, и когда размер ячейки изменяется в методе heightForRowAtIndexPath
, подпредставления перемещаются соответствующим образом. Проблема возникает, когда текст в содержимом сообщения больше одной строки. Высота ячейки регулируется правильно, но верхняя часть текстового представления остается в том же месте, увеличивается вниз и перетекает в следующую ячейку. Когда я размещаю ограничения для выравнивания четырех подвидов с верхней частью ячейки, я сталкиваюсь с проблемами, когда нет изображения, а содержимое сообщения больше, чем одна строка. В этом случае размер ячейки изменяется так, чтобы он был меньше ее исходного размера, а подпредставления остаются на расстоянии, заданном ограничением. Меньшее изображение, заголовок поста, время и содержание обрезаются и не отображаются. Это такая странная проблема с таким количеством разных случаев. Я работаю над этим почти два дня и действительно могу использовать чьи-то мысли о том, как решить эту проблему. Я надеюсь, что это не слишком запутанно, спасибо за помощь!