Тем временем я немного поэкспериментировал с использованием UITextField
вместо Label
, и это привело меня к интересному наблюдению: оба компонента, похоже, выполняют некоторое внутреннее масштабирование и изменение размера в зависимости от размера шрифта, так чтовизуализированный текст всегда будет иметь отступы вокруг него.Числа, возвращаемые из getTextLineMetrics()
, различаются для одного и того же размера шрифта при использовании любого из компонентов.
UITextField
отображает текст так, что общая высота пикселя компонента соответствует числу, указанному как fontSize
,что, в свою очередь, делает фактический текст немного меньше (около 2-4 пикселей).Кроме того, кажется, что игнорируется, когда вы устанавливаете leading
в ноль.
Label
соответствует полученной высоте строки так, как было указано как fontSize
, делая компонент больше этого (примерно на 5 пикселей)).
Хотя это, безусловно, сбивает меня с толку, я удовлетворен использованием компонента Label
и его размещением таким образом, чтобы лишние пробелы сверху и снизу обрезались родительским компонентом и не имели значениябольше.Текст тогда имеет правильный размер.Я центрируюсь по вертикали, что легко, но также будет полезно использовать числа от getTextLineMetrics()
для более сложного позиционирования.