Есть ли простой способ преобразовать ограничения, которые уже определены в раскадровке, в код Swift? - PullRequest
0 голосов
/ 02 февраля 2019

Я разработал ViewController в своей раскадровке и откорректировал все его ограничения соответственно.

Теперь я хотел бы анимировать большинство из этих ограничений.

Итак:

  1. Я должен определить их снова, используя коды Swift
  2. и написать несколько кодов для анимации.

Ноочень неприятно снова определять ограничения в коде Swift, пока они уже есть в раскадровке.

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

1 Ответ

0 голосов
/ 02 февраля 2019

Нет, нет встроенных способов визуализации ограничений IB в код Swift.Вы можете перебирать их, получать все их свойства и делать что-то в этом роде, но это будет грязно.Существует слишком много разных способов создания ограничений программно, и даже если бы существовал какой-то автоматизированный инструмент, я уверен, что код не будет очень элегантным.(Как правило, инструменты, которые генерируют код программно, не приводят к очень хорошему коду.)

Интересно, в целом концепция.Мы часто анимируем ограничения, сгенерированные IB, не проходя через все это.Типичный подход состоит в том, чтобы дать этим ограничениям IB ссылки @IBOutlet, а затем вы можете программно изменить их значения constant, а затем поместить вызов layoutIfNeeded в закрытие анимации.Или, если необходимо, вы можете отключить их (опять же, используя выходы), а затем сделать любую анимацию, какую захотите, и, при необходимости, повторно активировать эти ограничения позже, если это необходимо.

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

Но это пример того, как вы можете анимировать изменение позиции представления, для которого определены ограничения в IB: https://stackoverflow.com/a/28329399/1271826

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...