2015-07-02 2 views
2

Позволяет сказать, у меня есть приложение, которое показывает контроллер A на iPhone и контроллер B на IPAD, вы можете думать об этом, как UITableView (для iPhone) и UICollectionView (для IPad), например, , Оба контроллера имеют одинаковую модель и могут иметь одинаковый базовый класс, который может совместно использовать общий материал.IOS универсальный раскадровка iPhone IPad

Теперь перед универсальной панелью рассказов у ​​меня было 2 отдельных раскадровки, одна для iPhone и одна для iPad, а во время выполнения я проверил и загрузил правильную раскадровку в соответствии с устройством.

Вопрос в том, что это правильный способ сделать это в универсальной раскадровке?

Вариант 1 - использовать одну раскадровку, имеющую представление таблицы и коллекции, и использовать только один контроллер для обоих и скрывать ненужный.

Вариант 2 - не используйте универсальные в этом сценарии.

Я пытаюсь понять, если мне нужно использовать универсальную раскадровку, только если у iPhone и iPad есть один и тот же интерфейс?

+0

с iOS 8, вы должны решить это, работая с классами размеров и адаптивным интерфейсом. – nburk

+0

Я не вижу связи между классами размеров и адаптивным интерфейсом к вопросу. – Amir

ответ

1

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

2

Вам не нужно иметь UITableView в вашем приложении iPhone, UICollectionView в основном то же самое.

Просто сделайте два вида UICollectionViewCells, вы можете сделать так, чтобы они выглядели как базовая ячейка таблицы, и вы можете использовать их на нужном устройстве. Вероятно, вам понадобится второй UICollectionViewFlowLayout.

+0

Давайте скажем, например, что я должен использовать uitableview для iphone и uicollectionView для ipad – Amir

+0

Если по какой-то причине вам нужно использовать табличные представления для iPhone и коллекционные представления для iPads, я бы сохранил их в отдельных раскадках b/c therenn «Хороший, чистый способ делать то, что вы хотите. Тем не менее, вы можете рассматривать просмотр коллекции (включая внешний вид), как табличный вид, поэтому, на мой взгляд, вы просто создаете больше работы для себя, делая это по-своему. Мне будет проще обрабатывать все размеры экрана, ориентации и т. Д. –

+0

Я думаю, что тогда используйте два vc, а не две раскадровки в одной раскадровке, которые мы можем сделать для любого типа устройства, а также ориентации с использованием автоматической компоновки. –

3

Если ваш весь графический интерфейс отличается для iPhone и iPad, вы должны использовать две разные раскадровки.

Класс размера и универсальная раскадровка полезны, когда ваш GUI имеет одинаковые элементы управления, и вы просто хотите изменить размер элементов управления в соответствии с рамкой экрана.

Если это только один случай, когда ваши средства управления различны для iPhone и IPad, так что одна вещь: -

Используйте универсальный раскадровку и создать два ViewControllers для iPhone и IPad, как: - IphoneViewController и IpadViewController, и во время выполнения проверьте, является ли ваше устройство iPad или iPhone, и решите, какой контроллер должен быть загружен/нажимать/присутствовать.

+0

Я видел, что в универсальной раскадровке я устанавливаю флажок на представлениях. так что не правильно ли проверять установку на iphone на табличном представлении и снять отметку с просмотра коллекции и наоборот, так что я могу использовать один контроллер просмотра раскадровки? – Amir

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

  • Нет связанных вопросов^_^