iPhone 4 и 5 Автоматическое изменение размера вертикального пространства

Я построил свои представления в Interface Builder для измерений iPhone 4. Я думал, что Autoresize Constraints в iOS 6 позаботится об изменении размера автоматически. На снимке экрана показано ограничение Top Space, которое Xcode добавляет автоматически. В нем говорится, что соотношение между верхним и нижним оранжевым видом должно составлять 332 точки.

верхнее ограничение пространства

При просмотре в iPhone 5 оранжевая кнопка вытянута до конца, как вы можете видеть на скриншоте ниже.

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

При изменении отношения на Больше чем или Равно представление не меняется и остается прежним. При удалении константы, чтобы сделать ее автоматической, представление растягивается на весь экран. Как указать ограничение, если высота составляет 44 точки и находится внизу?


person darksky    schedule 30.06.2013    source источник


Ответы (2)


Не ограничивайте верхнюю часть супервизора. Прикрепите его к нижней части суперпредставления и зафиксируйте высоту до 44, затем удалите ограничение, связывающее его с верхней частью представления.

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

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

Я писал о редактировании ограничений в конструкторе интерфейсов здесь если вам интересно.

person jrturton    schedule 30.06.2013
comment
Я не могу удалить верхнее ограничение пространства (оно фиолетовое). Я просто прикрепил его к низу, высота осталась 44, и я не могу удалить ограничение вида сверху, но у меня все та же проблема на 4-дюймовых дисплеях. Как я могу удалить это верхнее ограничение? Я установил его как «Авто», но как только я изменю его размер до 44 и прикреплю к нижнему супервиду, то же самое старое 323 верхнее ограничение представления вернется автоматически. Какие-либо предложения? - person darksky; 30.06.2013
comment
Если вы прикрепили нижнюю часть представления к нижней части суперпредставления, а высоту — к 44, вы сможете удалить верхнее ограничение. Возможно, вам придется сначала повысить его до пользовательского ограничения. IB добавляет ограничения только в том случае, если вы перетаскиваете представления (в этом случае он удаляет все и создает новые ограничения) или если вы не указали достаточно ограничений для однозначного определения макета. - person jrturton; 30.06.2013
comment
Так что не увеличивайте размер до 44 путем перетаскивания, по крайней мере, без настройки всего остального после этого. Используйте меню закрепления, чтобы определить высоту, затем отредактируйте ограничения в инспекторе. - person jrturton; 30.06.2013

Попробуйте добавить свои собственные ограничения (ограничение пользователя). В Auto Layout для каждого объекта всегда должно быть достаточно ограничений, чтобы определить его положение и размер на экране разных устройств.

Интерфейсный Разработчик автоматически создает ограничения для вас, как только вы размещаете представление в макете. Попробуйте разместить свои представления вдоль автоматических направляющих IB, чтобы помочь ему правильно угадать, какой макет вам нужен.

До Xcode 4 это делалось путем установки пружин и распорок из Interface Builder, а модель пружин и распорок по-прежнему используется по умолчанию, поэтому для каждого программно созданного представления, с которым вы хотите использовать автомакет, не забудьте вызвать

setTranslatesAutoresizingMaskIntoConstraints:NO.
person Sarim Sidd    schedule 30.06.2013