Как обрабатывать альтернативные виды внутри сцены - PullRequest
0 голосов
/ 20 декабря 2018

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

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

В качестве примера, следующая сцена имеет 3 вида, которые могут появиться (Начальный вид, Конечный вид, История ящика), в зависимости от ситуации, и все они расположены друг над другом ...

enter image description here Overlaid views in a scene

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

К сожалению, это приложение является моим основным введением в работу с пользовательскими интерфейсами в iOS, поэтому оно, по-видимому, стало стандартным решением в моей голове.Я перепробовал много уроков, но они занимают много времени и, кажется, никогда не доходят до ситуации, когда для их решения требуется такая техника.

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

Каким будет более просвещенный / более управляемый подход?

1 Ответ

0 голосов
/ 20 декабря 2018

Это то, что вы получите с раскадровками / Nibs / Xibs.Я не говорю, что кодирование вашего интерфейса лучше, чем использование конструктора интерфейса, но это, по крайней мере, для меня.Я полагаю, насколько я знаю, нет другого способа обрабатывать такие многоуровневые представления в одном контроллере представлений в конструкторе интерфейсов.Я на самом деле раньше использовал конструктор интерфейсов, и поэтому я также добавляю несколько уровней управления.Иногда некоторые представления изначально скрыты, но это, вероятно, смутило бы меня или другого разработчика, смотрящего на макет.Иногда я увеличиваю высоту viewcontroller, чтобы знать, что есть контейнер вида с ограничением в тысячу или отрицательной тысячной константой, чтобы сделать его скрытым и готовым для анимации, когда это необходимо показать.

Есть способы как-тоулучшить и организовать ваши раскадровки.Вы можете разделить модули в разные файлы раскадровки;вы можете использовать ссылки;избегать segues;и что "нет.Это по-прежнему индивидуальные или командные предпочтения.

Некоторые ссылки:

https://cocoacasts.com/organizing-storyboards-with-storyboard-references

https://medium.com/@stasost/xcode-a-better-way-to-deal-with-storyboards-8b6a8b504c06

РЕДАКТИРОВАТЬ:

IЯ думаю, вы могли бы также расположить отдельные контейнеры представления в отдельных XIB, а затем вызывать их или размещать их при необходимости.Но это добавит больше файлов в ваш проект.

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