Как выровнять по центру, игнорируя определенные символы? - PullRequest
4 голосов
/ 05 сентября 2011

Посмотрите на это UILabel.Выровнено по центру:

enter image description here


Теперь посмотрите на это UILabel.Хотя он технически выровнен по центру, на самом деле он выглядит не так:Символ степени - третий символ, таким образом немного ударяя два других влево.Мой вопрос: есть ли способ игнорировать определенные символы при выравнивании по центру надписи?

Ответы [ 2 ]

1 голос
/ 05 сентября 2011

Конечно, вы можете измерить текстовую строку (строки) и вычислить свое собственное расположение, вместо использования выравнивания текста в большем поле.

Предполагая, что вы не хотите этого делать, возникает еще одна идея - отобразить строку «° 60 °» с первым символом, стилизованным под цвет непрозрачности 0 и без тени.

Я не занимаюсь разработкой для iOS, поэтому не знаю, насколько это практично.

1 голос
/ 05 сентября 2011

Интересный вопрос. Единственное решение, которое приходит мне в голову, - это заполнить строку text пробелами спереди, чтобы отменить игнорируемые символы на спине.

То есть, чтобы центрировать @"60d", как если бы это было @"60", установите text на @" 60d". Это хорошо работает с шрифтом фиксированной ширины, но в остальном это только грубое приближение.

Если вам нравится эта идея и вы хотите с ней поработать, тогда вы можете использовать NSString s метод

– stringByPaddingToLength:withString:startingAtIndex:

возможно, в сочетании с – rangeOfCharacterFromSet: или каким-либо другим способом определения количества пробелов для заполнения.

...