2016-10-14 10 views
1

Я использую здание Xcode 8 для iOS 9 и использую автоматическую компоновку.Undeleteable constraints, добавленные InterfaceBuilder

Иногда, когда я устанавливаю ограничение в Interface Builder, возникает немедленный конфликт. Когда я нажимаю красное раскрытие и смотрю на конфликтующие ограничения, я увижу тот, который я только что установил, и другой, который конфликтует. Когда я нажимаю на ограничение, которое я установил, он выделяется. Когда я нажимаю на конфликтующее ограничение, оно не выделяется. Когда я нажимаю красную точку, чтобы удалить ограничение, флажок рядом с конфликтующим ограничением недоступен и не может быть выбран. Когда я возвращаюсь к инспектору документа или инспектору размера, я не вижу противоречивого ограничения, указанного для объекта, к которому он относится.

Так что мне кажется, что Interface Builder добавляет ограничения, которые не могут быть удалены. Моя проблема в том, что эти неустранимые ограничения не помогают. Например, я добавляю ограничение ширины> = 50 к представлению внутри представления стека и обнаруживаю, что он конфликтует с ограничением ширины = 0, добавленным системой, которое невозможно удалить.

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

ответ

0

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

1

Чтобы избежать конфликта, уменьшите приоритет ограничения ширины до 250. Ограничения в системе для UIStackView будут иметь приоритет 1000. Если вы скрываете представление в представлении стека, оно будет устанавливать ширину (или высоту) константа константы равна нулю.