XIB по раскадровке

В настоящее время мы используем Storyboard over xib во всех проектах. Но, на мой взгляд, если вы хотите сделать многоразовое представление (пользовательский вид или ячейку Tableview), которое можно повторно использовать в разных диспетчерах представлений, вы должны использовать xib файлы, как в раскадровке, мы не можем сделать отдельный объект просмотра отдельно.

Обратите внимание, что я использую Storyboard для рабочего процесса (контроллеры представлений со всеми типами) всего приложения. Только для многоразовых ячеек таблицы я использую XIB.

Я искал много документов Apple, а также видео WWDC, но я не смог найти конкретных доказательств от разработчиков Apple, которые говорят, что XIB здесь, чтобы остаться, или вы должны использовать XIB для пользовательских представлений.

Если у кого-то из вас, ребята, есть какие-то ссылки, которые дают некоторую уверенность в том, что мы все еще можем использовать XIB, не опасаясь, что Apple удалит его, это действительно будет оценено.

Ответ 1

Раскадранты рекомендуются, если вы не используете повторно представления.

Как только вы хотите повторно использовать что-то в нескольких представлениях/раскадровках, вам нужны XIB. Вы уже упоминали пример пользовательских ячеек. Это то, что мне нужно довольно часто, и я хочу использовать одну и ту же ячейку в нескольких табличных представлениях. Я делаю то же самое с диаграммами. Я создаю представление диаграммы, в котором я устанавливаю цвета и т.д., И я использую его повсюду, только помещая в него разные данные. Это экономит мне много кода в отношении стиля/внешнего вида и делает приложение легко поддерживаемым. В случае изменения (например, из-за новой версии iOS) мне нужно изменить все на одном месте.

Кроме того, я хочу иметь представления (например, ячейки) для iPhone и iPad и дать системе определить, какой из них использовать. Для этого снова нужны XIB. Я использую обозначение с ~iphone или ~ipad в конце, и мне не нужно писать код для получения правильного представления.

Это две вещи, которые вы просто не можете обойтись без XIB. Итак, следуя рекомендациям Apple, мой подход - использовать раскадровки, когда это возможно, и XIB только тогда, когда они мне нужны (в основном из-за повторного использования). Но есть реальные случаи, когда нужны XIB! Просто игнорирование их не является хорошей практикой. Фактически, в каждом проекте у меня есть раскадровки, а также XIB.

Изменить: Я нашел отличный пост, объясняющий недостатки раскадровки. Есть много вещей, о которых я не знал.

Ответ 2

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

У раскадровки много, много преимуществ. Особенно, когда вы начинаете привлекать новых людей к проекту. Без того, чтобы охватить сотни тысяч строк кода, новый разработчик может посмотреть на раскадровку и за 30 минут или менее получить неплохую идею о потоке приложения.

С учетом сказанного вы никогда не должны ограничивать себя чем-либо. Ограничение себя только раскадрой и никогда не использующее XIB или полное создание представления в коде, похоже на высказывание "Мы будем использовать NSArrays и никогда NSDictionary или NSSet". Вместо глупого ограничения вы всегда должны быть уверены, что используете подходящий инструмент для работы.

Ответ 3

Мое мнение - это использование, которое подходит для этого контекста, вот несколько рекомендаций:

Когда использовать наконечники

  • Модульность - это ключ к хорошо продуманным файлам nib.
  • Используйте nibs для хранения представлений, подзонов, пользовательских элементов управления или повторяющихся представлений.
  • Невозможно представить взаимосвязь между экранами связанного контента

Когда использовать раскадровки

  • Раскалывания лучше всего использовать для представления экранов контента и связей между этими экранами.
  • Отдайте должное внимание и внимание к prepareForSegue: отправитель: метод
  • Модульность по-прежнему применима при разработке раскадровки

Общие рекомендации

  • Разложите свои проекты в nibs и раскадровку
  • Представления, подзаголовки и пользовательские элементы управления должны содержаться в отдельных файлах nib Используйте раскадровки при разработке полноэкранного контента, а также четкие отношения между сценами.
  • Рассмотрим, должен ли интерфейс быть статическим или динамическим.
  • Используйте отдельные раскадровки для инкапсуляции повторяющихся последовательностей сцен.
  • Используйте отдельные раскадровки для несвязанных сцен.
  • Ячейки представления таблиц, которые могут быть повторно использованы в разных контроллерах, принадлежат файлам nib