Подтвердить что ты не робот

Раскрывает ли раскадровка необходимость .nib

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

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

Спасибо.

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

Pro-х

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

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

    Пример 2: вы можете сделать "Prototype Cells" для TableView, что значительно ускоряет создание статических табличных представлений. AFAIK это невозможно с файлами nib

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

Con-х

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

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

Ответ 4

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