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