2015-01-28 3 views
0

Возьмите следующее изображение, например, ширина верхнего красного прямоугольника зафиксирована на 200, ширина нижнего красного прямоугольника ограничена половиной ширины экрана. Мне нужно изменить размер 200 по размеру экрана. Здесь константа может быть фиксированной шириной/высотой или горизонтальным/вертикальным пространством.как сделать постоянное значение адаптивным в xcode IB

example image

Я могу сделать это программным способом, с помощью @ "Н: [redView (% d)]", @ "V: [redView (% d)]", можно рассчитать адаптивный ширину и высоту , Иногда, когда компоновка сложна, слишком сложно делать макет программно.

Так что мой вопрос заключается в том, чтобы сделать это в IB

Похожие вопросы:

(1) @ "H: | -5- [вид] -5- |", мне нужно от 5 до быть adpative на разных устройствах

(2) @ "Н: | [вид (100)] |", мне нужно 100, чтобы быть адаптивными

(3) @ "Н: | [v1] -0 - [v2] -0- [v3] | ", мне нужно v1: v2: v3 = 3: 5: 2

Как сделать вещи в IB , любой ответ был бы большой помощью, спасибо вам, ребята

У меня есть решение теперь, я могу перетащить ограничение, которое должно быть адаптивным от IB к IBOutlet в коде, а затем назначить его программным путем, таким образом, большинство вещей можно было бы сделать в IB. Но он все еще не умный, есть ли умный.

ответ

0

Для вашей красной коробки, контроль сопротивление от красной коробочки к содержащему его точке зрения (это можно легко сделать в режиме структуры документа). Выбирайте ограничения по равным ширинам и равным высотам из всплывающего окна. Измените множитель в процентах (например, 0,6 для 60%).

Подобным же образом, вы можете использовать одинаковую ширину с мультипликатором, чтобы решить ваши другие 3 случая:

(1) Добавить ограничение для центрирования вид горизонтально в содержащем его точки зрения, а затем сделать Просмотреть 97% ширина его содержащего вида.

(2) Используйте равные ширины с коэффициентом 0,3.

(3) Используйте равные ширины, чтобы сделать v1 0,6 от v2, v3 0,4 от v2. Pin v1 к переднему фронту супервизора со смещением 0. Штырь v1-v2 со смещением 0. Штырь v2-v3 со смещением 0. Pin v3 задний фронт для супервизора со смещением 0.

+0

Большое спасибо. Вы решили мои проблемы. Точка Yout заключается в том, чтобы избежать прямого назначения постоянных значений, в процентах или по соотношению сторон, я получил его. – leoujz

+0

Теперь я использую другой метод, в корневом представлении моей программы, я масштабирую константную переменную каждого ограничения в [ограничениях rootview], затем dfs [subviews rootview]. но это вызвало другую проблему с макетом, с которой я не справился. Возможно, ретрансляция всех моих взглядов будет намного лучше. Еще раз спасибо. – leoujz

+0

Что относительно @ "H: | -5- [v1] -5- [v2 | -5- |" ? Мне нужно, чтобы 5 были адаптивными? Спасибо – leoujz

0

вы можете получить ширину экрана, как показано ниже

CGFloat width = [UIScreen mainScreen].bounds.size.width; 

затем установите рамку. для примера

yourUIView.frame = CGRectMake(x coordinate, y coordinate, width, height); 

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

  • Нет связанных вопросов^_^