UITableView внутри UIView с ограничением 20px Top Space

У меня есть "Невозможно одновременно удовлетворить ограничения". в моем журнале приложений iOS, что я не могу понять или исправить.

У меня есть куча UIViews, идущих вертикально вниз по моему UIViewController. Каждый из них имеет заданную высоту, в данном случае 120 пикселей, с ограничением верхнего пространства для вида над ним и ограничением нижнего пространства для вида под ним.

Затем внутри представления есть UITableView с ограничением 20px Top Space. Это означает, что когда высота представления изменяется, представление таблицы становится больше, но все еще имеет его верхнее пространство на 20 пикселей.

Это работает отлично и не выдает предупреждений на уровне раскадровки, но выдает следующую ошибку консоли:

Невозможно одновременно удовлетворить ограничения. Вероятно, по крайней мере одно из ограничений в следующем списке - это то, что вам не нужно. Попробуйте это: (1) посмотреть на каждое ограничение и попытаться выяснить, чего вы не ожидаете; (2) найдите код, который добавил нежелательное ограничение или ограничения, и исправьте его. ( "", "")

Попытка восстановления путем нарушения ограничения

Создайте символическую точку останова на UIViewAlertForUnsatisfiableConstraints, чтобы перехватить это в отладчике. Методы в категории UIConstraintBasedLayoutDebugging в UIView, перечисленные в, также могут быть полезны.

Верхний пробел в 20px дает эффект разделителя, который разделяет представления только в том случае, если в их табличных представлениях есть строки, в противном случае их высота устанавливается равной 0 и весь вид исчезает. Если верхнее пространство 20px было в родительском представлении, тогда, когда высота равна 0, 20px сохранится.

1 ответ

ОК, я решил эту проблему. Это происходило потому, что у меня было верхнее поле 20px, а затем я устанавливал родительское представление на высоту 0, поэтому он не знал, слушать ли верхнее поле 20 или нижнее поле с ограничениями 0 для вида с высота 0.

Чтобы устранить эту проблему, я установил приоритет моего верхнего 20px ограничения на 999 (когда приоритет по умолчанию равен 1000), чтобы это ограничение игнорировалось, когда нужно сделать выбор между ними.

Другие вопросы по тегам