0

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

Для простоты, это в основном вопрос:

У меня есть контейнер Вид внутри Вид по умолчанию внутри View Controller. Container View имеет ограничения на верхний, нижний и конечный края его супервизора. У меня есть два ограничения «равной ширины», связанные между представлением супервизора и контейнера. Один из них равен супервину, а другой пропорционален супервину с множителем 0,9 в ограничении.

У меня есть кнопка, наложенная сверху на вид контейнера, которая чередуется между активными 2 равными/пропорциональными ширинами (в настоящее время я удаляю все остальные объекты в контроллере просмотра для простоты, чтобы попытаться изолировать то, что вызывает проблему ...

Когда кнопка переключает ограничение «равной ширины» на ограничение пропорциональности ширины 0,9, оно «толкает» контейнерный вид от заднего края (на 12 точек), а также сжимается вид контейнера на 10%, по желанию.

Я работаю над этим в течение нескольких часов, до сих пор безрезультатно ... из отчаяния я добавил дополнительное ограничение на задние края, чтобы включить nd off, с дополнительными 12 точками для компенсации сдвига при включении пропорциональной ширины. Ограничение по умолчанию (для наблюдения) установлено на -20, так как я увеличил его до -30, -31, -31.5, он все ближе и ближе смотрел вправо, но когда я положил его на -32, он снова прыгнул, от 12 до 20 пунктов, от края заднего края! Я знаю, что это не очень хороший способ решить эту проблему, но я хотел бы упомянуть об этом, в случае, если это может быть ключом для кого-то более осведомленного, чем я, о том, что вызывает проблему.

Спасибо за любую помощь, которую вы можете предложить!

UPDATE:

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

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

Последнее замечание. У меня есть аналогичный метод с нажатием кнопки, который изменяет высота встроенного VC, но без проблем.

ответ

0

Я решил это!

Так, как я подозревал в своем обновлении, проблема связана с чем-то, что не синхронизируется в ограничениях между видом контейнера и встроенным контроллером представления. В представлении контейнера, как упоминалось выше, было ограничение для заднего края супервизора и 2 для ширины, с которой я переключался с помощью кнопки. В представлении контроллера встроенного представления было основное ограничение для его супервизора. Как только я удалил это и переключил его для трейлинг-представления, проблема была решена!

Извлеченный урок: если вы собираетесь изменить вид контейнера с несколькими ограничениями ширины или высоты, убедитесь, что в представлении контейнера и содержимом встроенного представления убедитесь, что у него есть одно и то же ограничение стороны (сверху или снизу для оси y, ведущего или конец для оси x).

0

У меня есть опыт аналогичных проблем, прежде чем, не видя раскадровку, я не могу точно указать причину, но вы можете попробовать следующее:

  • Двойная проверка ваших ограничений связана с вашими кодами, даже если они не являются кодами, будут компилироваться и выполняться, но без эффекта.
  • Следите за журналами ограничений разбивки макета, может существовать другое ограничение, которое удерживало ваш взгляд на месте, чтобы вновь активированный был сломан.

Если обе причины не являются причиной, также проверьте, вызывает ли кнопка правильное действие.

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

Смежные вопросы