Варианты макета Xcode работают на симуляторе, но исчезают на физическом устройстве - PullRequest
0 голосов
/ 06 августа 2020

Я использовал этот ответ ( XCode: Как изменить макет представлений между альбомным и портретным режимом ), чтобы создать раскадровку, которая складывает представление изображения и представление таблицы друг на друга в портретном режиме и рядом в альбомном режиме. Когда я меняю ориентацию, все отлично работает в Xcode. Кроме того, он отлично работает на симуляторе для iPhone 11. Однако, когда я устанавливаю и запускаю свой физический iPhone X, портретный режим отображается нормально, но при переходе в альбомный режим кажется, что параллельный дисплей летает. с экрана, и все, что я вижу, это панель навигации. Я также воспроизвел это без панели навигации.

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

Ниже приведены снимки экрана, показывающие различные ограничения (и общие ограничения) для каждой ориентации.

Шаги для создания:

  1. Добавление представления изображения в контроллер представления нового проекта.
  2. В книжной ориентации нажмите «Варьировать по чертам», выберите «Высота» и «Ширина».
  3. Добавьте ограничения, ведущие, верхние и конечные, а также высоту.
  4. Щелкните " Done Varying "
  5. Изменить ориентацию на альбомную
  6. В альбомной ориентации нажмите" Vary for Traits ", выберите" Высота "и" Ширина ".
  7. Добавить интерлиньяж, верх, и нижние ограничения и ширину.
  8. Нажмите «Готово, изменение»
  9. Работает на раскадровке и симуляторе
  10. Не работает на физическом устройстве

Portrait Constraints

Ограничения ландшафта

1 Ответ

0 голосов
/ 07 августа 2020

Так что в итоге получилось простое решение благодаря статье на среднем уровне (https://medium.com/swlh/how-to-create-adaptive-views-combining-uistackview-and-autolayout-902d5e1eab05). Решение, написанное как есть, не сработало, но идея использования Stack View и добавления вариации на его оси была идеальной. Единственное изменение реализации, которое мне пришлось внести, - это добавить вариацию ширины Any (не Regular) и высоты Compact. Я не уверен, почему добавление ширины обычного к вариации не сработает. Приветствуется любое понимание этого.

Вот снимок экрана с добавленным вариантом в представлении стека.

Вариация оси просмотра стека

...