Разработчик интерфейса говорит, что ячейки UITableView нуждаются в ограничениях, но они не - PullRequest
0 голосов
/ 03 июля 2018

У меня есть контроллер вида с UITableView. Я установил в нем динамические ячейки прототипа, установил стиль первой ячейки «Пользовательский», добавил несколько подпредставлений в ячейку.

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

Скриншоты ниже показывают детали.

Во-первых, UITextField плавает наполовину над ячейкой, несмотря на наличие ограничения по центру y для своего суперпредставления, которое должно поместить его в середину ячейки.

enter image description here enter image description here

Нажатие кнопки «Обновить кадры» ничего не дает.

IB также делает ложные заявления о представлении изображения слева. Он говорит, что ему нужно «положение Y или высота». Но он имеет и высоту 50 пт, и ограничения на верх и низ ячейки.

enter image description here

enter image description here enter image description here

1 Ответ

0 голосов
/ 03 июля 2018

Вероятно, ограничения изображения большого пальца конфликтуют друг с другом по высоте ячейки прототипа. Верхнее пространство + нижнее пространство + высота больше, чем высота ячейки прототипа. Интерфейсный Разработчик не знает, как выложить это или какое ограничение сломать. У вас есть несколько вариантов:

  1. Измените высоту ячейки прототипа, чтобы она соответствовала ожидаемой высоте, чтобы ограничения не конфликтовали.

  2. Измените одно из 3 ограничений на приоритет меньше требуемого. Это позволит Интерфейсному Разработчику нарушить это ограничение, чтобы удовлетворить другие два.

  3. Измените ограничения, чтобы соответствовать высоте ячейки прототипа. Аналогичен варианту 1, но изменяет ограничения, чтобы соответствовать высоте, а не изменяет высоту, чтобы соответствовать ограничениям.

Интерфейсный Разработчик не очень прост, когда дело доходит до высоты ячеек, особенно когда они включают представление контента, которое имеет дробную высоту благодаря разделителю. Я предполагаю, что ваша проблема связана с этими тремя ограничениями, равными 70, но высота просмотра вашего контента примерно равна 70,5. Я обнаружил, что обычно лучше использовать ограничение top, ограничение высоты и центр по вертикали в ограничении контейнера вместо top, height и bottom.

...