Qual é a diferença entre um arquivo .xib e um .storyboard?


159

Alguém pode explicar em palavras simples a diferença entre .xib e .storyboard?


Eu não tenho idéia o que é um .timeline é, e eu suspeito que não tem nada a ver com o cronograma Facebook que a marca refere-se a
iandotkelly

1
essas duas questões são completamente separadas, George? Além disso, quando você diz .timeline, está falando sobre versões de um arquivo salvo ?
Michael Dautermann

Você tinha duas perguntas separadas aqui, então eu refinei para apenas uma. A primeira pergunta foi feita algumas vezes por aqui, como em Não é possível encontrar aplicativos baseados em janelas no XCode , então removi essa parte para focar na pergunta do Storyboarding.
Brad Larson

1
Consulte também esta pergunta semelhante, quando usar o Storyboard e quando usar XIBs . Tem excelentes respostas detalhadas, incluindo atualizações para o iOS 8 e Xcode 6.
Basil Bourque

Respostas:


115

A Apple introduziu o conceito "storyboarding"no iOS5 SDK para simplificar e gerenciar melhor as telas em seu aplicativo. Você ainda pode usar o .xibcaminho do desenvolvimento.

Antes do storyboard, cada UIViewControllerum tinha um associado .xiba ele. Storyboardconsegue duas coisas:

  1. .storyboardé essencialmente um único arquivo para todas as suas telas no aplicativo e mostra o fluxo das telas. Você pode adicionar segues/ transições entre telas, dessa maneira. Portanto, isso minimiza o código padrão necessário para gerenciar várias telas.

  2. Minimiza o número geral de arquivos em um aplicativo.

Você pode evitar o uso Storyboardao criar um novo projeto, deixando a opção "Usar Storyboard" desmarcada.

Você pode consultar este tutorial para começar.


5
O storyboard substitui a necessidade de arquivos .xib?
William Sham

16
Idealmente, sim. 1 arquivo .storyboard = 'n' não. de arquivos .xib.
Sagar Hatekar

2
E quanto às transições entre visualizações? Eu sei que existem segues, mas existem apenas alguns estilos diferentes de segues. Suponho que você ainda pode fazer a transição entre visualizações da mesma maneira que antes, mas se você não estiver usando um segue, isso pareceria estranho no storyboard, certo? Quais são seus pensamentos sobre isso?
dontangg

1
Nesse caso, acredito que os NavigationControllers entrariam em jogo?
Sagar Hatekar

fato do divertimento: Eu uso este post para mostrar-off minha (limitado) iOS Cred: D
Sagar Hatekar

22

Sim, você ainda pode criar um aplicativo baseado em janela para iOS 5. Se você usar o modelo "projeto vazio", verá que uma janela é criada para você no delegado do aplicativo. A partir daí, você pode adicionar arquivos XIB normalmente ou um novo storyboard.

Suponho que você queira dizer "storyboards" em vez de "linha do tempo". Os storyboards permitem mapear visualmente todas as visualizações em seus aplicativos e como elas se inter-relacionam. Se você está apenas começando com storyboards, há uma introdução aos storyboards nos vídeos da WWDC 2011 aqui . O curso para iOS de Stanford de 2011 no iTunes-U também é específico para iOS 5 e abrange storyboards e muito mais.


15

Um storyboard é como uma tela em que você coloca todos os seus arquivos .xib. Você não possui mais .xibs, apenas possui os View Controllers diretamente na sua tela.


2
Possivelmente a resposta mais útil.
Munib 21/11

9

O storyboard é um novo recurso disponível desde o lançamento do Xcode 4.2. Ele oferece uma nova maneira completa para o desenvolvedor do iOS criar e projetar uma interface de usuário. Antes da introdução do Storyboard, é especialmente difícil para o iniciante criar uma interface de navegação (e guia). Toda interface é armazenada em um arquivo xib separado. Além disso, você precisa escrever um código para vincular todas as interfaces e descrever como a navegação funciona.

Com os Storyboards, todas as telas são armazenadas em um único arquivo. Isso fornece uma visão geral conceitual da representação visual do aplicativo e mostra como as telas estão conectadas. O Xcode fornece um editor interno para o layout dos Storyboards. Você pode definir a transição (conhecida como segues) entre várias telas simplesmente usando apontar e clicar. Isso não significa que você não precisa escrever código para a interface do usuário. Mas os Storyboards reduzem significativamente a quantidade de código que você precisa escrever.

Fonte: http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/


2

XIB:

1) Os arquivos Xib são usados ​​com um único UIView.

2) É muito difícil implementar layouts automáticos complexos no xib.

3) Utiliza mais memória do que o storyboard e o silêncio lento.

4) É compatível a partir do iOS5 e em diante

5) Você pode fazer localizações para diferentes idiomas e países usando XIBs diferentes.

6) É difícil usar o mesmo Xib para suportar vários dispositivos.

Storyboard

1) Você pode criar um layout de todas as suas cenas, como Exibir controladores, Controladores de navegação, Controladores TabBar, etc. em um único storyboard.

2) Você pode usar o Auto Layout facilmente, que define as relações matemáticas entre os elementos que definem sua posição e tamanho.

3) Geralmente rápido e aloca menos memória.

4) Não é compatível antes do iOS 5.

5) As células "Dinâmicas" e "Protótipo" podem ser usadas facilmente.

6) Storyboards melhores para usar nos aplicativos com uma quantidade pequena e média de telas.

A melhor resposta que eu já vi: Xib Vs Storyboard no iOS


0

XIB e Storyboard são usados ​​para criar interfaces para usuários.

Um ponto importante é que os xibs são usados ​​para criar uma única visualização (ele possui um único proprietário de arquivo na parte superior do arquivo xib), mas, no caso do viewcontroller, várias telas podem ser adicionadas e seu fluxo também pode ser monitorado (possui proprietários de arquivos separados).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.