Когда использовать InterfaceBuilder для создания представлений? - PullRequest
3 голосов
/ 24 июня 2010

Проходя через обширную онлайн-документацию И различные примеры кода в центре разработки, я озадачен. Apple рекомендует ВСЕГДА использовать IB при создании ваших представлений, и все же во многих примерах кода представления создаются полностью в коде (инициализируется в методе loadView viewController). Существует ли «наилучшая практика» относительно того, когда вам следует использовать IB, а не код для создания ваших представлений?

Ответы [ 8 ]

2 голосов
/ 01 августа 2010

Нет жестких и быстрых правил, но в целом, чем сложнее представление, тем больше я склонен использовать IB.Очень простые вещи, такие как TableView в NavigationView, почти всегда будут в коде.Более сложные макеты, такие как подробный вид с десятками выходных меток, будут, как правило, размещаться в IB.

Тем не менее, если по какой-то причине я не хочу включать XIB в конечный продукт, например, если это статическая библиотека, я начну с IB, а затем использую Конвертер NIB в код .

1 голос
/ 01 августа 2010

Я всегда начинаю с Интерфейсного Разработчика.Иногда бывает необходимо углубиться в код, но на ранних стадиях проектирования представления визуальная компоновка IB делает создание прототипов на порядок быстрее и проще.

1 голос
/ 01 августа 2010

Личный опыт - IB на всем пути. Я предпочитаю видеть, что я на самом деле делаю, а не гадать, как ([myView size] .height / 2 + 15)% 3 будет выглядеть.

1 голос
/ 01 августа 2010

Из книги Программирование на iPhone: Руководство по ранчо большого ботаника

Если представление не имеет подпредставлений, создайте его программно.Если у него есть подпредставления, создайте файл XIB (т.е. используйте Interface Builder).

1 голос
/ 30 июля 2010

Лично я бы порекомендовал создавать представления исключительно с использованием кода. Это дает вам невероятный контроль над внешним видом всех объектов в представлении и значительно упрощает доступ к объектам при возникновении событий или необходимости откликов.

Исходя из личного опыта, я всегда забываю связать что-то с владельцем файла в IB и в конечном итоге трачу часы, пытаясь найти правильный маленький круг для повторного подключения. Пройдите весь код.

0 голосов
/ 13 января 2011

Я сейчас работаю над проектом и только что нашел конкретный пример использования кода вместо Interface Builder.Я получаю данные из веб-службы, и эти данные определяют, сколько UILabels я хочу видеть.Кроме того, если мне нужны две UILabel вместо одной, все, что находится под ними, должно скользить вниз по экрану.Невозможно сказать Интерфейсному Разработчику сделать это.

Таким образом, если у вас есть переменное количество подпредставлений или позиции подпредставлений могут меняться в зависимости от ваших данных, используйте Objective-C вместо Интерфейсного Разработчика.

0 голосов
/ 24 июня 2010

Вы можете быть смущены.IB разрабатывает макет представления, в то время как код создает экземпляр объекта представления.

Если вы спрашиваете о создании макета и создании экземпляра программно, а не о загрузке представления из nib / bundle ... это немного не в мою глубину,Но я рекомендую загружать связки / перья по сравнению с программными, если вы не занимаетесь модными вещами OpenGL и не меняете множество режимов между ориентацией и системой (iPad / iPhone).ИБ, возможно, не сможет вам там помочь ...

0 голосов
/ 24 июня 2010

Я думаю, если вам нужно создать вид для всего экрана, IB - хороший выбор.Это легче поддерживать, исправить ошибку.

Если вы просто хотите сделать простое, быстрое представление и вам необходимо создать подпункт в какой-то позиции, вам следует перейти к коду.

Я думаю, что этого достаточно для большинства случаев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...