Может ли кто-нибудь простыми словами объяснить разницу между .xib и .storyboard?
В чем разница между файлом .xib и .storyboard?
Ответы (6)
Apple представила концепцию "storyboarding"
в iOS5 SDK, чтобы упростить и улучшить управление экранами в вашем приложении. Вы все еще можете использовать .xib
способ разработки.
До раскадровки с каждым UIViewController
было связано .xib
. Storyboard
достигает двух вещей:
.storyboard
- это, по сути, один файл для всех ваших экранов в приложении, который показывает последовательность экранов. Таким образом вы можете добавитьsegues
/ переходов между экранами. Таким образом, это минимизирует шаблонный код, необходимый для управления несколькими экранами.Минимизирует общее количество файлов в приложении.
Вы можете избежать использования Storyboard
при создании нового проекта, не отметив опцию «Использовать раскадровку».
Вы можете обратиться к этому руководству, чтобы начать работу.
Да, вы все еще можете создать оконное приложение для iOS 5. Если вы используете шаблон «пустой проект», вы увидите, что окно создается для вас в делегате приложения. Оттуда вы можете добавить файлы XIB как обычно или новую раскадровку.
Я предполагаю, что вы имеете в виду «раскадровки», а не «временную шкалу». Раскадровки позволяют визуально отображать все представления в ваших приложениях и их взаимосвязь. Если вы только начинаете заниматься раскадровкой, ознакомьтесь с ней в видеороликах WWDC 2011, здесь а>. Стэнфордский курс iOS 2011 года в iTunes -U также относится к iOS 5 и охватывает раскадровки и многое другое.
Раскадровка похожа на холст, на который вы помещаете все свои файлы .xib. У вас больше нет файлов .xib, у вас просто есть контроллеры представления прямо на холсте.
раскадровка - это новая функция, доступная с момента выпуска Xcode 4.2. Он предлагает разработчикам iOS совершенно новый способ создания и разработки пользовательского интерфейса. До появления Storyboard новичку было особенно сложно создать интерфейс навигации (и вкладок). Каждый интерфейс хранится в отдельном файле xib. Кроме того, вы должны написать код, чтобы связать все интерфейсы вместе и описать, как работает навигация.
В раскадровках все экраны хранятся в одном файле. Это дает вам концептуальный обзор визуального представления приложения и показывает, как связаны экраны. Xcode предоставляет встроенный редактор для компоновки раскадровки. Вы можете определить переход (известный как переходы) между различными экранами, просто используя указатель и щелчок. Это не означает, что вам не нужно писать код для пользовательского интерфейса. Но раскадровки значительно сокращают объем кода, который вам нужно написать.
Источник: http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/
XIB:
1) Файлы Xib используются с одним UIView.
2) Очень сложно реализовать сложные автоматические макеты в xib.
3) Он использует больше памяти по сравнению с раскадровкой и работает тихо медленно.
4) Он совместим с iOS5 и новее.
5) Вы можете делать локализацию для разных языков и стран, используя разные XIB.
6) Трудно использовать один и тот же Xib для поддержки нескольких устройств.
Раскадровка
1) Вы можете расположить все свои сцены, такие как контроллеры представления, контроллеры навигации, контроллеры панели вкладок и т. Д., В одной раскадровке.
2) Вы можете легко использовать Auto Layout, который определяет математические отношения между элементами, определяя их положение и размер.
3) Обычно быстро и выделяет меньше памяти.
4) Он несовместим с iOS 5.
5) Простота использования "динамических" и "прототипных" ячеек.
6) Раскадровки лучше всего использовать для приложений с небольшим или средним количеством экранов.
Лучший ответ, который я видел: Xib против раскадровки в iOS
XIB и Storyboard используются для создания интерфейсов для пользователей.
Одним из важных моментов является то, что xibs используются для создания одного представления (у него есть один владелец файла в верхней части файла xib), но в случае с контроллером представления можно добавить несколько экранов, а также можно отслеживать его поток (он имеет отдельные владельцы файлов).
.timeline
, вы имеете в виду версии сохраненный файл? - person Michael Dautermann   schedule 08.12.2011