В чем разница между .xib-файлом и .storyboard?

159

Может кто-нибудь объяснить простыми словами разницу между .xib и .storyboard?

Георгий Сачпатзидис
источник
Я понятия не имею, что такое временная шкала, и я подозреваю, что она не имеет никакого отношения к временной шкале Facebook, на которую ссылается тег
iandotkelly
1
эти два совершенно разных вопроса, Джордж? Кроме того, когда вы говорите .timeline, вы говорите о версиях сохраненного файла ?
Майкл Даутерманн
У вас здесь было два отдельных вопроса, поэтому я уточнил только один. Первый вопрос задавался здесь несколько раз, например, в разделе «Не удается найти оконное приложение в XCode» , поэтому я удалил эту часть, чтобы сосредоточиться на вопросе раскадровки.
Брэд Ларсон
1
Смотрите также этот похожий вопрос, когда использовать раскадровку и когда использовать XIB . Имеет отличные подробные ответы, включая обновления для iOS 8 и Xcode 6.
Василий Бурк

Ответы:

115

Apple представила "storyboarding"в iOS5 SDK концепцию, упрощающую и улучшающую управление экранами в вашем приложении. Вы все еще можете использовать .xibспособ развития.

Предварительная раскадровка, у каждого UIViewControllerбыла связанная .xibс этим. Storyboardдостигает двух вещей:

  1. .storyboardпо сути один файл для всех ваших экранов в приложении, и он показывает поток экранов. seguesТаким способом вы можете добавлять / переходить между экранами. Таким образом, это сводит к минимуму стандартный код, необходимый для управления несколькими экранами.

  2. Минимизирует общее количество файлов в приложении.

Вы можете избежать использования Storyboardпри создании нового проекта, оставив флажок «Использовать раскадровку» не отмеченным.

Вы можете обратиться к этому руководству, чтобы начать.

Сагар Хатекар
источник
5
Таким образом, раскадровка заменяет потребность в файлах .xib?
Уильям Шам
16
В идеале да. 1 .storyboard file = 'n' no. из .xib файлов.
Сагар Хатекар
2
А как насчет переходов между взглядами? Я знаю, что есть segues, но есть только несколько различных стилей segues. Я предполагаю, что вы все еще можете переходить между представлениями так же, как и раньше, но если вы не используете переход, это будет выглядеть странно на раскадровке, верно? Что ты думаешь по этому поводу?
dontangg
1
В таком случае, я верю, что NavigationControllers вступят в игру?
Сагар Хатекар
забавный факт: я использую этот пост, чтобы
похвастаться
22

Да, вы все равно можете создать приложение на базе Windows для iOS 5. Если вы используете шаблон «пустой проект», вы увидите, что окно создано для вас в делегате приложения. Оттуда вы можете добавить файлы XIB как обычно или новую раскадровку.

Я предполагаю, что вы имеете в виду «раскадровки», а не «сроки». Раскадровки позволяют визуально наметить все представления в ваших приложениях и их взаимосвязь. Если вы только начинаете с раскадровки, есть введение в раскадровки в WWDC 2011 видео здесь . 2011 Stanford IOS курс на ITunes-U также IOS 5-специфичны и чехлов раскадровки и многое другое.

Натаниал Вулс
источник
15

Раскадровка похожа на холст, куда вы помещаете все свои файлы .xib. У вас больше нет .xibs, у вас есть только View Controllers прямо на вашем холсте.

robertfiorentino
источник
2
Возможно, самый полезный ответ.
Муниб
9

Раскадровка - это новая функция, доступная с момента выпуска Xcode 4.2. Он предлагает разработчикам iOS совершенно новый способ создания и разработки пользовательского интерфейса. До появления Storyboard новичку особенно сложно создать интерфейс навигации (и вкладки). Каждый интерфейс хранится в отдельном xib-файле. Кроме того, вы должны написать код, чтобы связать все интерфейсы вместе и описать, как работает навигация.

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

Источник: http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/

Mustafa
источник
2

XIB:

1) Xib-файлы используются с одним UIView.

2) Очень сложно реализовать сложные авто-макеты в XIB.

3) Он использует больше памяти по сравнению с раскадровкой и тихо медленно.

4) Совместимо с iOS5 и выше

5) Вы можете делать локализации для разных языков и стран, используя разные XIB.

6) Трудно использовать один и тот же Xib для поддержки нескольких устройств.

Раскадровка

1) Вы можете расположить все свои сцены, такие как контроллеры представления, контроллеры Nav, контроллеры TabBar и т. Д., В одной раскадровке.

2) Вы можете легко использовать Auto Layout, который определяет математические отношения между элементами, определяя их положение и размеры.

3) Обычно быстро и выделяет меньше памяти.

4) Это не совместимо до iOS 5.

5) Ячейки «Динамический» и «Прототип» могут быть легко использованы.

6) Раскадровки лучше всего использовать для приложений с небольшим или средним количеством экранов.

Лучший ответ, который я видел: Xib Vs Storyboard в iOS

Джитендра Гоххайат
источник
0

XIB и Storyboard используются для создания интерфейсов для пользователей.

Одним из важных моментов является то, что xibs используются для создания одного представления (у него один владелец файла в верхней части файла xib), но в случае viewcontroller можно добавить несколько экранов и отслеживать его поток (он имеет владельцы отдельных файлов).

No_name_untilRecognised
источник