Отзывчивый шаблон дизайна для ориентации ipad
Мне нужно настроить конкретный пользовательский интерфейс с различным шаблоном дизайна для ландшафтных и портретных режимов приложения iPad. В основном на этом экране должно быть изображение, область содержимого для хранения описания темы, связанных элементов этой темы и адреса.
Это изображение даст четкую картину.
![Responsive Layout]()
Из рисунка (2) находится раздел, куда должно идти изображение, (4) описание, (5) связанная с этим тема (6) адрес. (3) - это контейнерный блок, который должен меняться в зависимости от 4, 5 и 6 и (1) - это прокрутка, которая должна содержать свое содержимое, а также размер содержимого, правильно настроенный на основе 2 и 3.
Можно ли достичь этого сценария исключительно с помощью Autolayout или использовать пользовательский UICollectionViewLayout, это лучший вариант
Оцените любые предложения
Ответы
Ответ 1
Решение, которое я вижу, заключается в изменении ограничений AutoLayout, когда устройство вращается, и вы делаете это программно:
вы можете обнаружить изменение ориентации в этом методе: viewDidLayoutSubviews вашего контроллера вида.
и для ограничения AutoLayout, чтобы упростить работу, вы можете использовать стороннюю структуру PureLayout, вот ее репозиторий github: https://github.com/smileyborg/PureLayout
Ответ 2
Немного устаревший, но все же актуальный...
Вы можете сделать это, представив родительский контроллер представлений, который отрегулирует коллекцию признаков вашего контроллера вида.
Вы можете начинать с таких проектов, как AdaptivePhotosAnAdaptiveApplication или, более конкретно, класс AAPLTraitOverrideViewController
и применять классы размеров, чтобы различать между типами и позициями ориентации Portrait and Landscape orientation.
С небольшой настройкой viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
вы можете достичь своей цели.
Здесь вы можете найти код:
https://github.com/ios8/AdaptivePhotosAnAdaptiveApplication/blob/master/AdaptivePhotos/AAPLTraitOverrideViewController.m