Ширина ячейки UITableView не изменяется при применении ограничений раскадровка xcode - PullRequest
0 голосов
/ 16 июня 2020

Я использую настраиваемую ячейку tableview и автоматический макет, но столкнулся со следующей ошибкой: я пытался применить различные ограничения, чтобы ширина была растянута, но безуспешно. Может ли кто-нибудь помочь мне, как настроить ограничения, чтобы ячейка заполняла всю ширину экрана?

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

enter image description here


Edit 1:

Я пробовал это на основе предложений и получил это

enter image description here

И в предварительном просмотре он показывает мне это

enter image description here


Редактировать 2:

Та же ошибка возникает и в другом макете

Вот это

enter image description here

Добавлены ограничения:

enter image description here

И предварительный просмотр меньшего размера экрана

enter image description here

Все элементы за пределами tableview при правильном масштабировании ошибка возникает для элементов внутри tableview, ошибка заключается в том, что ширина ячейки не регулируется в соответствии с размером экрана

Не могли бы вы Как мне помочь?


Изменить 3:

Вот ограничения и вывод с цветным фоном для лучшего понимания, я все еще не нашел решения и не могу понять, почему это не так работает, может ли кто-нибудь помочь

Ограничения:

enter image description here

Вывод в окне предварительного просмотра:

enter image description here


Редактировать 4:

Я создал простой макет, чтобы упростить решение проблемы

enter image description here

И вывод

enter image description here

Основная проблема в том, что ширина не масштабируется, не могу понять, почему ...


Edit 5:

Когда я делал тот же макет на iPhone SE, то это были результаты, я использовал те же ограничения, что и выше, в Edit 4

enter image description here

Кажется, что ограничения не работают внутри ячейки табличного представления. Может ли кто-нибудь сказать мне, как можно решить эту проблему? Спасибо

Ответы [ 3 ]

3 голосов
/ 18 июня 2020

Из вашего Edit5 , я думаю, вам нужно что-то вроде этого.

Edit5 SE Edit5 XR

Это скриншоты из XR и SE.
1. Позвольте вашей ячейке вычислить высоту автоматически. Вам просто нужно наложить ограничения на элементы внутри ячейки.
2. В UITableViewCell добавьте UIView (цвет фона: желтый) с ограничениями сверху, снизу, впереди и в конце равными 0. Задайте для этого фиксированную высоту. view, если вы не хотите, чтобы он был равен высоте строки по умолчанию.
3. В этот желтый UIView добавьте еще один UIView (цвет фона: зеленый) с ограничениями, ведущие = 10, конечные = 10. Отметьте этот зеленый UIView «вертикально по центру в контейнере» по отношению к его родительскому объекту, то есть желтому UIView. Теперь дайте зеленому UIView ограничение равной высоты его родительскому элементу, то есть желтому UIView. Вы можете изменить множитель в соответствии с вашими потребностями.

Ограничения для Edit5: Ограничения Edit5

Более того, для вашего Edit1 , согласно моему пониманию , вы не применяете приоритет Content Hugging к метке Time. Приоритет охвата контента вступает в игру, когда доступный контент превышает общий размер контента. Здесь доступное содержимое = ширина экрана, а общий размер содержимого = заголовок + время. Итак, вам нужно установить высокий приоритет Time Content Hugging и низкий приоритет Title Content Hugging, чтобы метка заголовка расширялась на вашем экране. Один с более высоким приоритетом сжимается, т.е. крепко обнимает его содержимое.

Я приложил скриншот экранов XR и SE.
Edit1 SE Edit1 XR

Ограничения на Edit1: Edit1 Constr

1 голос
/ 16 июня 2020

enter image description here

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

Пожалуйста, проверьте добавленные ограничения.

1 голос
/ 16 июня 2020

Сначала возьмите UIView на tableviewCell и присвойте ведущим, конечным, верхним и нижним значениям 0. а затем создайте свой вид сверху. и не ставьте никаких указаний на Время Метка.

...