PDA

Просмотр полной версии : Как реализовать вертикальное выравнивание текста в TextField


zhoran
05.01.2011, 15:49
Есть TextField который может принимать и двухстрочный текст "Call\n(500.0)" и однострочный "Check" высота подобрана под двухстрочный, поэтому однострочный находится не посередине поля, а вверху.

Горизонтальное выравнивание по центру я реализовал, а как реализовать вертикальное выравнивание?
TextField лежит на кнопке, надо чтобы было красиво.

-De-
05.01.2011, 15:52
Руками.
txt.y = (buttonHeight - txt.textHeight)*0.5;

bav
05.01.2011, 15:56
Представим, что кнопка – это контейнер для текстового поля (Sprite), содержащий еще и некую графику. Тогда можно попробовать так:

// button - контейнер
// field - текстовое поле
field.y = button.height / 2 - field.textHeight / 2;

Только в данном случае следует помнить, что объекты TextField по умолчанию имеют высоту и ширину равные 100.

TanaTiX
05.01.2011, 16:18
В цс5 это реализовано без бубнов.

zhoran
07.01.2011, 17:31
В цс5 это реализовано без бубнов.
это здорово, но у меня цс4 и мигрировать пока нет времени.

Попробовал выставлять в коде высоту текста и его положение, но так как кнопки у меня заранее нарисованы в виде символов, удобнее мне показалось добавить в IDE новый слой с позиционированной однострочной надписью, и кодом я прячу либо 2строчную либо двустрочную.

Но, если бы кнопка полностью создавалась кодом, то ессно, решение с textField оказалось бы вне конкуренции.