Подтвердить что ты не робот

Почему могут быть ограничения Autolayout не появляться во время выполнения?

Я пытаюсь создать собственный подкласс UITableViewCell, который отображает изображение и несколько меток справа от изображения. У меня есть UIImageView и UILabels, размещенные в представлениях стека, самые внешние из которых я привязал ко всем четырем сторонам представления содержимого. Снимок экрана раскадровки Снимок экрана ограничений

Но когда я запускаю приложение в симуляторе, я не вижу изображения. Отладка иерархии представлений, я вижу, что они становятся обрезанными. Снимок экрана иерархии просмотров

И, копаясь немного дальше, сосредоточившись на внешнем представлении стека с помощью "Показать ограничения", я не вижу ограничений для автоматического макета (вместо этого я получаю предупреждение о неоднозначном представлении позиции для каждого из самых удаленных представлений стека). Снимок экрана иерархии представлений, сфокусированный на представлении стека

Текстовая метка, которая расширяется вправо, настраивается на 0 строк, а в представлении таблицы значение константы estimatedRowHeight и ее rowHeight установлено на UITableViewAutomaticDimension, поэтому я думаю, что если эти ограничения работают, строки в таблице размер будет соответствовать содержимому. Возможно, в частности, любое ограничение ширины или ширины макета ширины или высоты, которое я добавляю, появляется, когда я отлаживаю иерархию представлений, поэтому я знаю, что некоторые ограничения присутствуют во время выполнения, я просто не могу на всю жизнь понять, почему ограничения относительно представления содержимого нет.

4b9b3361

Ответ 1

После долгой борьбы и с более опытным разработчиком посмотрите мой проект, кажется, что нет ничего плохого в том, как он был настроен. Воспроизведение ячейки таблицы с нуля с помощью одного и того же макета и ограничений и использование одного и того же кода устранили эту проблему. Я немного перепутал с представлениями стека и ограничениями до того, как это началось, поэтому можно было бы получить Xcode в место, где он не настроил должным образом ограничения при запуске приложения в симуляторе.

Ответ 2

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