2015-02-07 2 views
0

У меня есть этот вид иерархии на ViewControllerПопытка выровнять с autolayout

view 
| |_____ redView 
|   |______orangeView 
| 
| 
|_______ blackView 

blackView высота всегда 126 пт. orangeView имеет соотношение сторон 127:155 и находится внутри redView. Результат этого видел на iPhone 3.5"

enter image description here

Теперь я хотел бы сделать эту шкалу пропорционально всех размеров iPhone Делать это на Photoshop, я хотел бы, чтобы это было так:..

enter image description here

Примечание две вещи: orangeView должны иметь соотношение сторон и iPhone 4 является единственным, где organgeView высота такая же, как redView-е на других телефонах, что такое же ширина

..

Из-за этого я не могу понять, какие ограничения я должен применить к orangeView, чтобы сделать его масштабным, как я хочу.

Что я получить это:

enter image description here

В сдерживает меня до сих пор для orangeView являются эти: CenterX к redView, centerY к redView, aspecratio (127: 155) и такое же высота redView , но это последнее неверно и причина, по которой у меня есть результат, который у меня есть. Как я могу увеличить размер оранжевого изображения, чтобы достичь максимального горизонтального или вертикального положения, сохраняя его соотношение сторон на всех устройствах и продолжая полностью находиться в области redView?

+0

Может вы пытаетесь заменить «такой же высоты redView» с «той же ширины redView»? - Редактировать: ах нет, это не работает для 3.5 – Masa

+0

нет, и причина в том, посмотрите на первое изображение. На iPhone 4 ширина не может быть одинаковой. Это проблема. На iPhone 4 высоты одинаковы, на других iPhone, ширина одинакова. – SpaceDog

+0

Ваша математика, кажется, не складывается, если я понимаю ваши требования. На 4-дюймовом iPhone у вас есть 442 точки по вертикали после того, как вы вычтите нижний вид 126 точек. Если вы хотите сохранить это соотношение сторон, то высота оранжевого изображения не должна быть такой же, как у красного вида, это должно быть 390 – rdelmar

ответ

1

Я думаю, что вы можете сделать то, что хотите, указав ширину и высоту оранжевого изображения равным красному виду, но с низким приоритетом (я использовал 250). Также вам нужен тот, который говорит, что оранжевый вид - < = ширина красного изображения с приоритетом 1000 (иначе оранжевый вид проходит мимо границ красного обзора в направлении ширины).

enter image description here

Таким образом, те, которые говорят одинаковую ширину и высоту, равную по SuperView оба имеют приоритет 250.

+0

Хорошая идея! Работы – Masa

+0

Человек, вы гений! Я не знал, что вы можете иметь несколько ограничений, связанных с шириной и высотой! Genius! – SpaceDog

Смежные вопросы