У меня есть простой UITableViewCell
, который содержит UIImageView
и 3 UILabel
.Здесь я предоставляю обычный вид ячейки, чтобы глубоко понять проблему:
![enter image description here](https://i.stack.imgur.com/XDoUY.png)
Как вы заметили, метка описания может быть длинной, поэтому яустановите numberOfLines
в 0. Но проблема возникает, когда это описание пустое или маленькое.Клетки начинают перекрывать друг друга.Вот как это выглядит, когда описание пустое или маленькое: ![enter image description here](https://i.stack.imgur.com/XzCxo.jpg)
Если вы заметили, изображения накладываются друг на друга.Ограничения, которые я дал для представлений, следующие:
UIImageView
: ведущий к суперпредставлению, ширине и высоте, центру по вертикали
BookName ( полужирный шрифт сверху ): сверху и в конце к суперпредставлению, ведущий к UIImageView
AuthorName ( оранжевая метка ): сверху к BookName, трейлинг к суперпредставлению, ведущий к UIImageView
Описание ( серая метка ): трейлинг и низ к суперпредставлению, сверху к AuthorName и ведущему к UIImageView
(книжное изображение)
Я также предоставил Content Hugging and Compression Resistance Priorities
.Я предоставил их только для UILabel
.Я установил наименьшую метку для описания, чтобы она росла и уменьшалась.
Что я сделал для решения проблемы?
Я понял, что если описание пустое, ячейка становится меньше.Другими словами, метки определяют размер ячейки.Кроме того, учитывая тот факт, что UIImageView
центрируется только по вертикали, я подумал, что мои ограничения неверны.Итак, я решил избавиться от , центрирующего вертикально UIImageView .Я установил ограничения сверху, шириной, шириной и высотой только для UIImageView
.Другие ограничения были такими же, как указано выше.Но это не помогло, вот результат:
![enter image description here](https://i.stack.imgur.com/3zDb8.png)
Как видите, UIImageView
выходит за границы ячейки.Я думал, что это происходит, потому что я не предоставляю нижнее ограничение для UIImageView
.Но я предоставляю это для описания.Итак, следующая попытка фактически предоставила это нижнее ограничение.Итак, я предоставил ограничения top, left, bottom и width для UIImageView
.Я оставил другие ограничения такими же.Изначально результат меня удивил.Вот как выглядят ячейки, когда нет описания: ![enter image description here](https://i.stack.imgur.com/Ku88T.jpg)
Похоже, все хорошо (во всяком случае, изображение слишком маленькое, оно пытается соответствовать размеру ячейки, то естьконтролируется метками), но после прокрутки UITableView
ячейки меняют свои размеры и каким-то образом обновляют свои ограничения.Вот что произошло:
![enter image description here](https://i.stack.imgur.com/7W53G.jpg)
Я также пытался установить estimatedRowHeight
и автоматический размер, но это не помогло, и я не думаю,что проблема решена таким образом.Итак, любая помощь приветствуется.