2011-12-13 4 views
19

С введением раскадровки я бы не стал выбирать .xib/.nib, когда создаю подкласс UIViewController, потому что я могу просто вытащить viewcontroller в построителе интерфейса и назначьте его новому классу.Разве раскадровка устраняет необходимость .nib

Итак, с раскадровкой, когда мне понадобится использовать файл .xib/.nib?

спасибо.

+0

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

+0

Это не в иерархии файлов, в корневой папке нет фактического файла. –

ответ

11

Я предполагаю, что раскадровка содержит файлы .xib/.nib для всех ваших просмотров. Он представляет отношения между ними и помогает избежать путаницы, если у вас много просмотров. Также это экономит ваше время и нервы при написании кода.

+0

Спасибо. Теперь я чувствую себя более комфортно, так как я вижу, что все эти уроки из доретриверного времени говорят об использовании .xib –

+5

Прежде чем переходить на переработку всего вашего интерфейса с раскадровки, вы можете прочитать подробное описание Джонатана Уайта о проблемах, которые у него были с технологией: http : //toxicsoftware.com/uistoryboard-issues/ –

+1

URL-адрес, упомянутый в комментарии Брэда Ларсона, кажется, переместился, теперь это http://toxicsoftware.com/uistoryboard-issues.html – JosephH

4

Если вы используете раскадровки, вам вообще не нужно создавать отдельные .xib-файлы. Вы можете по-прежнему использовать файл .xib, если хотите - он может быть полезен, например. если у вас есть особенно сложный вид, который вы бы хотели настроить самостоятельно. Большую часть времени, однако, не будет необходимости в этом.

+0

Не нужно создавать файлы nib, когда вы хотите повторно использовать определенные виды. Например, если у вас есть своего рода рейтинг (4 из 5 звезд), который вы хотите разместить в разных местах? – Besi

32

Раскадранные материалы не полностью устраняют необходимость в файлах NIB. Один из распространенных примеров - создание подзонов для входа в UIScrollView. Вы не можете создавать субвью отдельно в раскадровке; вместо этого вам нужно создать отдельные NIB (ы) для подзонов и программно привязать их к просмотру прокрутки.

Фактически, практически в любом случае, когда у вас есть необходимость в подсмотрах, которые изменяются во время выполнения, вы захотите использовать отдельные NIB.

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

+0

+ 1 за то, чтобы быть кратким, точным и точным. Не говоря уже об ответе на вопрос. – sean

10

Я опробовал раскадровки в последнее время и у меня смешанные чувства по поводу его использования:

Pro,

  • Удобство: Вы, возможно, придется писать гораздо меньше кода. Таким образом, вы можете, например, показать статический вид без необходимости писать какой-либо код.
  • Обзор: Вы можете быстро увидеть, как ViewControllers связаны друг с другом
  • Эффективность: Для простых случаев использования я считаю Storyboarding гораздо эффективнее, чем «старому».

    Пример 1: Editor > Embed In > Navigation Controller и voilà, не требуется больше экземпляров и настроек.

    Пример 2: Вы можете сделать «Prototype Cells» для TableView, что значительно ускоряет создание статических табличных представлений. AFAIK это not possible с СИБ файлов

  • Это круто :-)

Con-х

  • Я считаю, что повторное юзабилити как-то страдает раскадровки. Хотя я могу переходить к определенному ViewController из нескольких точек, он по-прежнему ограничен, поскольку в одном случае я могу использовать VC как Popover, а другой - как Master-ViewController.
  • Предполагая, что вы работаете в большой команде, и разные люди меняют разные части вашего приложения, наличие одной монолитной раскадровки, которую вы затем должны объединить, может создать серьезную проблему в команде.
  • Я действительно хотел бы иметь некоторый механизм для включения или ссылки на существующие файлы nib в раскадровку, что в настоящее время невозможно.

Так что, учитывая эти моменты, я до сих пор считаю, что раскадровка очень привлекательна, но имеет смысл объединить оба подхода, которые на самом деле не имеют большого значения. Кроме того, эта технология все еще совершенно новая, поэтому она может улучшиться в ближайшем будущем.

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