2015-05-23 3 views
0

Я пытаюсь создать клавиатуру для приложения, с которым я играю. Клавиатура будет стандартной четырьмя строками с цифрами 0 - 1, десятичной и +/-. Ничего особенного. Я пытаюсь заставить его заняться только 1/2 вертикального пространства экрана. Используя ограничения, я прикрепил левую нижнюю кнопку влево и в нижней части экрана, а нижнюю правую кнопку - в нижней и правой части экрана. Я устанавливаю ширину и высоту левой кнопки, а затем использую Aspect Ratio на этой кнопке. На остальных нижних кнопках я перетаскиваю левую сторону в соседнюю с ним сторону и выбираю Horizontal Spacing, Center Y, Equal Width и Equal Height. Затем я управляю перетаскиванием с каждой из кнопок выше, на кнопку ниже и выбираю Вертикальный интервал, Центр X, Равная ширина и Равная высота из списка ограничений. Я думал, что нижняя левая кнопка будет корректироваться на основе выбранного устройства, а затем все остальные кнопки будут настраиваться на основе этой кнопки.Настройка ширины и высоты кнопок в соответствии с устройством

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

Любой совет о том, как выполнить эту задачу, будет оценен по достоинству. Я все еще понимаю, как сдерживают друг друга, но я думал, что моя идея звучит. Сделайте одну кнопку, настройте себя на правильный размер (соотношение сторон слева внизу), а затем заставьте все остальные кнопки поддерживать ту же ширину, высоту и расстояние.

ответ

0

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

Это приведет к тому, что кнопки будут соответствовать их размеру в зависимости от размера экрана, но это не делает их половиной высоты экрана (это может работать только для одного размера экрана с определенным соотношением сторон). Чтобы заставить кнопки занимать половину вертикальной высоты экрана, вы, вероятно, захотите вложить их в представление, которое было этой высотой. Однако тогда у вас будет конфликт между соотношением сторон кнопок и соотношением сторон экрана. Вам либо нужно отказаться от соотношения сторон, либо не выровнять правую сторону кнопок в правой части экрана, а использовать пропорции, которые сделают все кнопки на экране.

+0

Причина, по которой я вводим ширину и высоту, заключается в том, что если я этого не сделаю, я получаю предупреждения о том, что кадры различаются во время выполнения. Я действительно просто догадываюсь о том, что я знаю о том, как это работает. Возможно, то, что я не знаю, влияет на меня больше. Я просто не знаю, как это сделать. Соотношение сторон, казалось, было способ пойти, но оно не действует так, как я ожидал, что он будет действовать. Ширина кнопок настраивается только в соответствии с приведенным выше сценарием. Высота не регулируется вообще. Вот здесь проблема с слишком высокими кнопками. – Scott

+0

@Scott Я не вижу, как это: «ширина кнопок настраивается просто в соответствии с приведенным выше сценарием» может быть правдой, если вы установите явную ширину для кнопок , если вы не получите предупреждения, и система нарушает одно или несколько ограничений. Если все кнопки в строке имеют равную ширину, а одна из них имеет заданную ширину, и у вас есть ограничения пробега, идущие от левого края до правого края, то это добавляет до фиксированного числа - это не должно быть в состоянии настроить. – rdelmar

+0

Я получаю то, что вы говорите, я действительно это делаю. Но кнопки уменьшаются на ширину. У меня есть представление, настроенное таким образом, что оно состоит из трех кнопок, занимая весь экран. И независимо от того, какой из имитируемых устройств я запускаю, кнопки все подходят точно. Ширина мутная, а не высота. Я только установил ширину и высоту только для первой кнопки.Другие кнопки имеют ту же ширину, что и высота. Нет предупреждений, пока я не удалю явную ширину и высоту. – Scott

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