В чем разница между .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 прямо на вашем холсте.


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

9

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

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

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


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 можно добавить несколько экранов и отслеживать его поток (он имеет владельцы отдельных файлов).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.