2015-06-17 2 views
0

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

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

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

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

ответ

1

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

0

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

Лучший способ достичь этого - использовать autolayout. Его можно использовать в дизайнере раскадровки, а также программно. Это позволит вам определить, как ведут себя элементы пользовательского интерфейса, не требуя знать размеры строки состояния, панели инструментов, навигационной панели, ширины экрана и высоты и т. Д.

+0

Быстрый дополнительный вопрос: когда я должен строить свои собственные взгляды? Похоже, что весь код автозапуска поступает в контроллер просмотра. Вы видели какие-либо примеры сложных представлений, созданных программно с автозапуском? –

+0

Я использую автомасштабирование в основном только в раскадровки. Я действительно думаю, что начать с визуального дизайна было бы легче начать для вас. Для некоторых примеров и подробного обсуждения автоматической компоновки в коде взгляните на iOS Auto Layout Demystified book от Erica Sadun. – MirekE

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