IOS - пропорциональное расстояние с автозапуском

Я пытаюсь создать идеально масштабируемое представление с помощью построителя интерфейса. Пока все хорошо. Я масштабирую шрифт, кнопки и т.д. Программно. Единственная проблема - это ограничения (промежуток) между элементами, которые остаются неизменными. Я хочу, чтобы избежать создания точек для ограничений расстояния, потому что кажется беспорядочным. Я хочу, чтобы расстояние между элементами оставалось пропорциональным, когда я растягиваю элемент. прямо сейчас все выровнено по левой стороне экрана. если я растяну свой взгляд, все останется влево. Я хочу, чтобы все это растянулось пропорционально. Как я могу выполнить это (желательно с помощью построителя интерфейса)?

enter image description here

Ответ 1

Примечание. Это своего рода отрывочный способ сделать это.

У меня была аналогичная проблема и разрешил ее, добавив фиктивные представления между моими объектами, чтобы представить промежуток между ними. Вы можете ограничить манекен, чтобы масштабировать пропорционально остальным вашим представлениям, что сделает расстояние между вашими объектами соответствующим образом масштабированным с общим размером. Я установил скрытое свойство своих фиктивных представлений, чтобы они не появлялись (обратите внимание - они все еще правильно раскладываются, когда они скрыты).

Надеюсь, что это поможет.

Edit:

Этот метод несовершенен (вам нужно загромождать IB с посторонними представлениями), но, как и @sha, кажется, что это единственный способ сделать это. Оказывается, другие люди давали аналогичные советы. Я натолкнулся на эти ссылки, которые могут быть полезны:

AutoLayout для пропорционального просмотра размеров просмотров

AutoLayout: согласование компоновки с шагом пропорционального элемента с 3,5 "и 4" Экраны

Ответ 2

Маскированные представления??? Ты, должно быть, Прикалываешься. И если это то, что рекомендует Apple, то я не очень уважаю их.

То, что вы явно ищете, - это центральное горизонтальное (Center X Alignment) ограничение, и вам просто нужно играть с множителем, сохраняя константу в 0:

введите описание изображения здесь

Умножитель переходит от 0-2

1 will place the center of the subview at the center of the superview.
0 will place the center of the subview at the left edge of the superview.
2 will place the center of the subview at the right edge of the superview.
0.5 will place the center of the subview at 25% through the superview.
1.5 will place the center of the subview at 75% through the superview.

Избавьтесь от всех ограничений по горизонтальному пространству. И всегда думайте о мультипликаторах - константы ограничений всегда должны быть установлены на 0.

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