#objective-c #xcode #autolayout #storyboard #constraints
#objective-c #xcode #автоматическое описание #раскадровка #ограничения
Вопрос:
Вот моя проблема.
У меня есть квадратное изображение, которое не помещается в приложение для iPad или iPhone, поскольку экраны не квадратные, поэтому я решил добавить UIImageView, который:
Когда телефон находится в портретном положении, я добавляю ограничение сверху (-20) и снизу (0), чтобы заполнить весь экран, выравнивая X по центру и сохраняя соотношение сторон, чтобы изображение было квадратным, даже если экран больше или меньше, это означает, что с обеих сторон я буду «потерять» часть моего изображения, но это нормально.
Когда я поворачиваю свой телефон в альбомную ориентацию, экран становится шире, поэтому я вижу квадратное изображение в середине экрана, но белый прямоугольник с обеих сторон. Я думаю, что решение этой проблемы заключается в том, что когда оно находится в альбомной позиции, мне нужно удалить верхние и нижние ограничения и добавить одно к lead (-20) и одно к trail (-20), центрировать изображение по оси Y и сохранить соотношение 1: 1…
Но мой вопрос: как добавить ограничение к допустимому для одного orientarion и изменить его на другой?
Каков наилучший подход?
Спасибо
FP
Ответ №1:
Вам не нужно делать это программно. Я рекомендую вам сделать так, чтобы представление заполняло супервизор — иметь по одному ограничению для каждого сверху, снизу, слева и справа. Затем для инспектора атрибутов UIImageView в построителе интерфейсов установите «Режим просмотра» на заливку аспекта.
Комментарии:
1. Я проверю это, но у меня есть сомнения, будет ли изображение централизованным.. Я не против потерять часть изображения, но это должна быть небольшая часть с каждой стороны
2. Юсуф, это именно то, что я искал, спасибо
Ответ №2:
Я думаю, у вас это неправильно.
В портретном режиме вы должны установить ограничения на след и лидерство, так как ваш рост больше ширины, поэтому, если вы установите (0) для следа и лидерства и соотношения 1: 1, вы можете быть уверены, что он будет хорошо вписываться. Также центрируйте его вертикально в контейнере.
В альбомной ориентации, поскольку ширина больше высоты, вы должны установить top и bottom (0) и соотношение 1: 1 и центрировать его по горизонтали в контейнере.
Комментарии:
1. Нет, то, что я написал, правильно, иначе у меня будет пустое пространство сверху и снизу на портрете, а слева и справа в альбомной ориентации
2. Хм, значит, задача состоит в том, чтобы выровнять прямоугольник ?! У вас есть два варианта: вы можете либо согласиться с тем, что я предложил, у вас будет «пробел», но все ваше изображение поместится, либо вы можете согласиться с предложением Юсуфа, и у вас не будет пробелов, но вы потеряете совсем немного своего изображения.. Я думаю, все сводится к отображаемому изображению.. Пустое пространство, о котором вы упоминаете, является фоном, почему бы вам не установить для него цвет, который дополняет ваше изображение, чтобы оно не выглядело..
3. На самом деле то, что предложил Юсуф, — это именно то, что я искал … спасибо за вашу помощь, я ценю это